Do you have a bundle in your container, which actually also exports that
package/class?

regards, Achim

2016-02-29 11:47 GMT+01:00 D <[email protected]>:

> Hi,
>
> I set <Import-Package>*;resolution:=optional</Import-Package> but still
> getting the exception Could not instantiate class
> [net.logstash.log4j.JSONEventLayoutV1].
>
> My entire pom.xml looks like below:-
>
> <project xmlns="http://maven.apache.org/POM/4.0.0"; xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation="
> http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd
> ">
>   <modelVersion>4.0.0</modelVersion>
>   <groupId>net.logstash.log4j</groupId>
>   <artifactId>jsonevent-layout</artifactId>
>   <packaging>jar</packaging>
>   <version>1.8-SNAPSHOT</version>
>   <name>jsonevent-layout</name>
>   <description>Log4j pattern layout that conforms to the logstash
> json_event format</description>
>   <url>http://logstash.net</url>
>   <licenses>
>     <license>
>       <name>The Apache Software License, Version 2.0</name>
>       <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
>       <distribution>repo</distribution>
>     </license>
>   </licenses>
>   <developers>
>     <developer>
>       <id>lusis</id>
>       <name>John E. Vincent</name>
>       <email>[email protected]</email>
>     </developer>
>     <developer>
>       <id>pyr</id>
>       <name>Pierre-Yves Ritschard</name>
>       <email>[email protected]</email>
>     </developer>
>   </developers>
>   <properties>
>       <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
>
> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
>   </properties>
>   <parent>
>     <groupId>org.sonatype.oss</groupId>
>     <artifactId>oss-parent</artifactId>
>     <version>7</version>
>   </parent>
>   <scm>
>     <connection>scm:git:[email protected]:[email protected]:
> logstash/log4j-jsonevent-layout.git</connection>
>     <developerConnection>scm:git:[email protected]:
> logstash/log4j-jsonevent-layout.git</developerConnection>
>     <url>[email protected]:logstash/log4j-jsonevent-layout.git</url>
>   </scm>
>   <build>
>     <pluginManagement>
>       <plugins>
>         <plugin>
>           <artifactId>maven-assembly-plugin</artifactId>
>           <version>2.2.2</version>
>           <executions>
>             <execution>
>               <id>uberjar</id>
>               <phase>package</phase>
>               <goals>
>                 <goal>single</goal>
>               </goals>
>             </execution>
>           </executions>
>           <configuration>
>             <descriptorRefs>
>               <descriptorRef>jar-with-dependencies</descriptorRef>
>             </descriptorRefs>
>           </configuration>
>         </plugin>
>         <plugin>
>           <groupId>org.apache.maven.plugins</groupId>
>           <artifactId>maven-compiler-plugin</artifactId>
>           <version>2.3.2</version>
>           <configuration>
>             <source>1.5</source>
>             <target>1.5</target>
>           </configuration>
>         </plugin>
>         <plugin>
>           <groupId>org.apache.maven.plugins</groupId>
>           <artifactId>maven-source-plugin</artifactId>
>           <executions>
>             <execution>
>               <id>attach-sources</id>
>               <goals>
>                 <goal>jar</goal>
>               </goals>
>             </execution>
>           </executions>
>         </plugin>
>       <plugin>
>         <groupId>org.apache.maven.plugins</groupId>
>         <artifactId>maven-javadoc-plugin</artifactId>
>         <executions>
>           <execution>
>             <id>attach-javadocs</id>
>             <goals>
>               <goal>jar</goal>
>             </goals>
>           </execution>
>         </executions>
>       </plugin>
>     </plugins>
>   </pluginManagement>
>   </build>
>   <dependencies>
>     <dependency>
>       <groupId>net.minidev</groupId>
>       <artifactId>json-smart</artifactId>
>       <version>1.1.1</version>
>     </dependency>
>     <dependency>
>       <groupId>log4j</groupId>
>       <artifactId>log4j</artifactId>
>       <version>1.2.16</version>
>       <scope>provided</scope>
>     </dependency>
>     <dependency>
>       <groupId>commons-lang</groupId>
>       <artifactId>commons-lang</artifactId>
>       <version>2.6</version>
>     </dependency>
>     <dependency>
>       <groupId>junit</groupId>
>       <artifactId>junit</artifactId>
>       <version>4.8.1</version>
>       <scope>test</scope>
>     </dependency>
>   </dependencies>
>   <profiles>
>       <profile>
>           <id>bundle</id>
>           <build>
>               <plugins>
>                   <plugin>
>                       <groupId>org.apache.felix</groupId>
>                       <artifactId>maven-bundle-plugin</artifactId>
>                       <version>2.3.7</version>
>                       <extensions>true</extensions>
>                       <configuration>
>                           <instructions>
>
> <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
>
>
> <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
>
> <Import-Package>*;resolution:=optional</Import-Package>
>
>
> <Fragment-Host>org.ops4j.pax.logging.pax-logging-service;bundle-version="[1.6,1.7)"</Fragment-Host>
>
> <Embed-Dependency>*;scope=compile|runtime;inline=true</Embed-Dependency>
>
> <Implementation-Version>${project.version}</Implementation-Version>
>                           </instructions>
>                       </configuration>
>                   </plugin>
>               </plugins>
>           </build>
>       </profile>
>     <profile>
>       <id>release-sign-artifacts</id>
>       <activation>
>         <property>
>           <name>performRelease</name>
>           <value>true</value>
>         </property>
>       </activation>
>       <build>
>         <plugins>
>           <plugin>
>             <groupId>org.apache.maven.plugins</groupId>
>             <artifactId>maven-gpg-plugin</artifactId>
>             <executions>
>               <execution>
>                 <id>sign-artifacts</id>
>                 <phase>verify</phase>
>                 <goals>
>                   <goal>sign</goal>
>                 </goals>
>               </execution>
>             </executions>
>           </plugin>
>           <plugin>
>               <groupId>org.apache.felix</groupId>
>               <artifactId>maven-bundle-plugin</artifactId>
>               <version>2.3.7</version>
>               <extensions>true</extensions>
>               <configuration>
>                   <instructions>
>
> <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
>
>
> <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
>                     <Import-Package>*;resolution:=optional</Import-Package>
>
>
> <Fragment-Host>org.ops4j.pax.logging.pax-logging-service;bundle-version="[1.6,1.7)"</Fragment-Host>
>
> <Embed-Dependency>*;scope=compile|runtime;inline=true</Embed-Dependency>
>
> <Implementation-Version>${project.version}</Implementation-Version>
>                   </instructions>
>               </configuration>
>           </plugin>
>         </plugins>
>       </build>
>     </profile>
>   </profiles>
> <distributionManagement>
>   <snapshotRepository>
>     <id>ossrh</id>
>     <url>https://oss.sonatype.org/content/repositories/snapshots</url>
>   </snapshotRepository>
>   <repository>
>     <id>ossrh</id>
>     <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/
> </url>
>   </repository>
> </distributionManagement>
> </project>
>
>
>
> On Mon, Feb 29, 2016 at 3:50 PM, Achim Nierbeck [via Karaf] <
> [email protected]> wrote:
>
> > Hi,
> >
> > you have an import-package with !* so you import nothing.
> > My guess, that is wrong as it should actually import something as it
> can't
> > call the desired class.
> > You should make sure your own bundle/fragment does import the correct
> > packages.
> >
> > regards, Achim
> >
> >
> > 2016-02-29 11:18 GMT+01:00 Debraj Manna <[hidden email]
> > <http:///user/SendEmail.jtp?type=node&node=4045613&i=0>>:
> >
> >> Thanks Achim for replying.
> >>
> >> I tried to have a fragment bundle of  JSONEvenLayout
> >> <https://github.com/logstash/log4j-jsonevent-layout> . But whenever I
> am
> >> trying to start Karaf I am getting the below exception. I have listed
> down
> >> all the steps that I have been doing. Can you let me know what I am
> doing
> >> wrong?
> >>
> >> ]log4j:ERROR Could not instantiate class [net.logstash.log4j.
> >> JSONEventLayoutV1].
> >> java.lang.ClassNotFoundException: net.logstash.log4j.JSONEventLayoutV1
> >> not found by org.ops4j.pax.logging.pax-logging-service [5]
> >>     at
> >>
> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)
> >>
> >>     at
> >>
> org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)
> >>
> >>     at
> >>
> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955)
> >>
> >>     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> >>     at java.lang.Class.forName0(Native Method)
> >>     at java.lang.Class.forName(Class.java:264)
> >>     at org.apache.log4j.helpers.Loader.loadClass(Loader.java:198)
> >>     at
> >>
> org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:326)
> >>
> >>     at
> >>
> org.apache.log4j.helpers.OptionConverter.instantiateByKey(OptionConverter.java:123)
> >>
> >>     at
> >>
> org.apache.log4j.PaxLoggingConfigurator.parseAppender(PaxLoggingConfigurator.java:129)
> >>
> >>     at
> >>
> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735)
> >>
> >>     at
> >>
> org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615)
> >>
> >>     at
> >>
> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502)
> >>
> >>     at
> >>
> org.apache.log4j.PaxLoggingConfigurator.doConfigure(PaxLoggingConfigurator.java:72)
> >>
> >>     at
> >>
> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl.updated(PaxLoggingServiceImpl.java:214)
> >>
> >>     at
> >>
> org.ops4j.pax.logging.service.internal.PaxLoggingServiceImpl$1ManagedPaxLoggingService.updated(PaxLoggingServiceImpl.java:362)
> >>
> >>     at
> >>
> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189)
> >>
> >>     at
> >>
> org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152)
> >>
> >>     at
> >>
> org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85)
> >>
> >>     at
> >>
> org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1747)
> >>
> >>     at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:103)
> >>     at java.lang.Thread.run(Thread.java:745)
> >> log4j:ERROR No layout set for the appender named [out].
> >>
> >>
> >>
> >> The steps that I have followed.
> >>
> >> 1. Modified the pom.xml file of jsonevent-layout as shown below:-
> >>
> >> <plugin>
> >> <groupId>org.apache.felix</groupId>
> >> <artifactId>maven-bundle-plugin</artifactId>
> >> <version>2.3.7</version>
> >> <extensions>true</extensions>
> >> <configuration>
> >>     <instructions>
> >>
> >> <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
> >>
> >>
> <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
> >>         <Import-Package>!*</Import-Package>
> >>
> >>
> <Fragment-Host>org.ops4j.pax.logging.pax-logging-service;bundle-version="[1.6,1.7)"</Fragment-Host>
> >>
> >> <Embed-Dependency>*;scope=compile|runtime;inline=true</Embed-Dependency>
> >>
> >> <Implementation-Version>${project.version}</Implementation-Version>
> >>     </instructions>
> >> </configuration>
> >> </plugin>
> >>
> >> 2. Build json format using mvn clean install -Pbundle
> >>
> >> 3. Copy bundle created to system directory
> >>
> >>     mkdir -p
> ${karaf.home}/system/net/logstash/log4j/jsonevent-layout/1.8-SNAPSHOT/
> >>
> >>     cp target/jsonevent-layout-1.8-SNAPSHOT.jar
> >> ${karaf.home}/system/net/logstash/log4j/jsonevent-layout/1.8-SNAPSHOT/
> >>
> >> 4. Add this line to etc/startup.properties before Pax Logging
> >>
>  
> net/logstash/log4j/jsonevent-layout/1.8-SNAPSHOT/jsonevent-layout-1.8-SNAPSHOT.jar=3
> >>
> >>     mvn\:org.ops4j.pax.url/pax-url-aether/2.4.1 = 5
> >>     mvn\:org.ops4j.pax.url/pax-url-wrap/2.4.1/jar/uber = 5
> >>     mvn\:org.ops4j.pax.logging/pax-logging-api/1.8.4 = 8
> >>     mvn\:org.ops4j.pax.logging/pax-logging-service/1.8.4 = 8
> >>     Updated org.ops4j.pax.logging.cfg as follows:-
> >>     log4j.appender.stdout=org.apache.log4j.ConsoleAppender
> >>     log4j.appender.stdout.layout=net.logstash.log4j.JSONEventLayoutV1
> >>     log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} | %-5.5p
> |
> >> %-16.16t | %-32.32c{1} | %X{bundle.id} - %X{bundle.name} -
> >> %X{bundle.version} | %m%n
> >>
> >>
> >>  Thanks,
> >> Debraj
> >>
> >> On Mon, Feb 29, 2016 at 1:17 PM, Achim Nierbeck <[hidden email]
> >> <http:///user/SendEmail.jtp?type=node&node=4045613&i=1>> wrote:
> >>
> >>> Depends on if you have an appender that can do so.
> >>> If you have such an appender, make sure to attach it to pax-logging.
> >>> One known to work solution is to have a fragment bundle which attaches
> >>> to the pax-logging service bundle (if it's a log4j 1.x bundle)
> >>>
> >>> regards, Achim
> >>>
> >>>
> >>> 2016-02-29 6:46 GMT+01:00 D <[hidden email]
> >>> <http:///user/SendEmail.jtp?type=node&node=4045613&i=2>>:
> >>>
> >>>> Is there a way we can make karaf log in JSON format?
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> View this message in context:
> >>>>
> http://karaf.922171.n3.nabble.com/Karaf-logging-in-JSON-format-tp4045607.html
> >>>> Sent from the Karaf - User mailing list archive at Nabble.com.
> >>>>
> >>>
> >>>
> >>>
> >>> --
> >>>
> >>> Apache Member
> >>> Apache Karaf <http://karaf.apache.org/> Committer & PMC
> >>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
> Committer
> >>> & Project Lead
> >>> blog <http://notizblog.nierbeck.de/>
> >>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
> >>>
> >>> Software Architect / Project Manager / Scrum Master
> >>>
> >>>
> >>
> >
> >
> > --
> >
> > Apache Member
> > Apache Karaf <http://karaf.apache.org/> Committer & PMC
> > OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer
> &
> > Project Lead
> > blog <http://notizblog.nierbeck.de/>
> > Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
> >
> > Software Architect / Project Manager / Scrum Master
> >
> >
> >
> > ------------------------------
> > If you reply to this email, your message will be added to the discussion
> > below:
> >
> >
> http://karaf.922171.n3.nabble.com/Karaf-logging-in-JSON-format-tp4045607p4045613.html
> > To unsubscribe from Karaf logging in JSON format, click here
> > <
> http://karaf.922171.n3.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4045607&code=c3ViaGFyYWoubWFubmFAZ21haWwuY29tfDQwNDU2MDd8MTIyMTY4MjkyMg==
> >
> > .
> > NAML
> > <
> http://karaf.922171.n3.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml
> >
> >
>
>
>
>
> --
> View this message in context:
> http://karaf.922171.n3.nabble.com/Karaf-logging-in-JSON-format-tp4045607p4045617.html
> Sent from the Karaf - User mailing list archive at Nabble.com.
>



-- 

Apache Member
Apache Karaf <http://karaf.apache.org/> Committer & PMC
OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer &
Project Lead
blog <http://notizblog.nierbeck.de/>
Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>

Software Architect / Project Manager / Scrum Master

Reply via email to