Hi, I have a simple Hello World type Karaf Bundle. The activator code looks like below:-
public class HelloWorldActivator implements BundleActivator { @Override public void start(BundleContext bundleContext) throws Exception { System.out.println("STARTING DEMO: hello, world\n"); System.out.println(getJsonDataAsString()); } @Override public void stop(BundleContext bundleContext) throws Exception { System.out.println("STOPPING DEMO"); } private String getJsonDataAsString() { JsonDataBlob jsonDataBlob = new JsonDataBlob(); ObjectMapper objectMapper = new ObjectMapper(); objectMapper.registerModule(new AfterburnerModule()); try { return objectMapper.writeValueAsString(jsonDataBlob); } catch(Exception e) { e.printStackTrace(); } return ""; } } 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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.hello</groupId> <artifactId>world</artifactId> <version>0.0.1</version> <packaging>bundle</packaging> <name>Hello World</name> <dependencies> <!-- OSGi --> <dependency> <groupId>org.osgi</groupId> <artifactId>org.osgi.core</artifactId> <version>4.3.1</version> </dependency> <dependency> <groupId>org.osgi</groupId> <artifactId>org.osgi.compendium</artifactId> <version>4.3.1</version> </dependency> <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20160212</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.6.2</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.6.2</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.6.2</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.module</groupId> <artifactId>jackson-module-afterburner</artifactId> <version>2.7.1</version> </dependency> </dependencies> <build> <sourceDirectory>src</sourceDirectory> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.8</source> <target>1.8</target> <excludes> <exclude>**/com/hello/main/*</exclude> </excludes> </configuration> </plugin> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <version>2.4.0</version> <inherited>true</inherited> <extensions>true</extensions> <configuration> <instructions> <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName> <Bundle-Version>${project.version}</Bundle-Version> <Bundle-Activator>com.hello.world.HelloWorldActivator</Bundle-Activator> <Import-Package>*;resolution:=optional</Import-Package> </instructions> </configuration> </plugin> </plugins> </build> </project> The java object which I am trying to convert to json is a simple object as shown below:- package com.hello.world; public class JsonDataBlob { private String add1 = "JP Naagar"; private String add2 = ""; private int shippartagent = 1; public String getAdd1() { return add1; } public void setAdd1(String add1) { this.add1 = add1; } public String getAdd2() { return add2; } public void setAdd2(String add2) { this.add2 = add2; } public int getShippartagent() { return shippartagent; } public void setShippartagent(int shippartagent) { this.shippartagent = shippartagent; } } Whenever I am trying to install the bundle I am getting the below exception:- 2016-05-07 15:36:48,986 | WARN | x-6.1-2.0/deploy | fileinstall | 7 - org.apache.felix.fileinstall - 3.5.0 | Error while starting bundle: file:/Users/debraj/Downloads/apache-servicemix-6.1-2.0/deploy/world-0.0.1.jar org.osgi.framework.BundleException: Activator start error in bundle world [239]. at org.apache.felix.framework.Felix.activateBundle(Felix.java:2196)[org.apache.felix.framework-4.2.1.jar:] at org.apache.felix.framework.Felix.startBundle(Felix.java:2064)[org.apache.felix.framework-4.2.1.jar:] at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)[org.apache.felix.framework-4.2.1.jar:] at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1245)[7:org.apache.felix.fileinstall:3.5.0] at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1217)[7:org.apache.felix.fileinstall:3.5.0] at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:509)[7:org.apache.felix.fileinstall:3.5.0] at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:358)[7:org.apache.felix.fileinstall:3.5.0] at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:310)[7:org.apache.felix.fileinstall:3.5.0] Caused by: java.lang.NoClassDefFoundError: com/fasterxml/jackson/module/afterburner/AfterburnerModule at java.lang.Class.getDeclaredConstructors0(Native Method)[:1.8.0_77] at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)[:1.8.0_77] at java.lang.Class.getConstructor0(Class.java:3075)[:1.8.0_77] at java.lang.Class.newInstance(Class.java:412)[:1.8.0_77] at org.apache.felix.framework.Felix.createBundleActivator(Felix.java:4336) at org.apache.felix.framework.Felix.activateBundle(Felix.java:2141) ... 7 more Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.module.afterburner.AfterburnerModule not found by world [239] at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1532)[org.apache.felix.framework-4.2.1.jar:] at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75)[org.apache.felix.framework-4.2.1.jar:] at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1955) at java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_77] ... 13 more All the required Jackson bundles are installed in Karaf:- karaf@root>bundle:list | grep Jackson 123 | Active | 50 | 2.6.2 | Jackson-core 125 | Active | 50 | 2.6.2 | Jackson-annotations 238 | Installed | 80 | 2.7.1 | Jackson-module-Afterburner karaf@root>bundle:list | grep jackson 124 | Active | 50 | 2.6.2 | jackson-databind Everything works fine if I just comment out the below line:- objectMapper.registerModule(new AfterburnerModule()); I have placed the required code in github <https://github.com/debraj-manna/afterburner-issue> Has anyone able to execute the Jackson's Afterburner module in Karaf 3.0.5? Thanks, Debraj