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.
