java - ClassNotFoundException during OSGI bundle startup -
i have problem cannot seem solve on own. if have osgi bundle uses blueprint instantiation of objects should deployed karaf 3.0.0. problem is, classnotfoundexceptions keep bothering me, allthough corresponding jars located in bundles jar. pom.xml:
<?xml version="1.0" encoding="utf-8"?> <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.kneipenapp</groupid> <artifactid>web-service</artifactid> <name>webservice</name> <version>0.0.1</version> <packaging>bundle</packaging> <dependencies> <!-- database connection --> <dependency> <groupid>commons-dbcp</groupid> <artifactid>commons-dbcp</artifactid> <version>2.0</version> </dependency> <dependency> <groupid>commons-pool</groupid> <artifactid>commons-pool</artifactid> <version>2.2</version> </dependency> <dependency> <groupid>com.mysql</groupid> <artifactid>mysql-driver</artifactid> <version>5.1.29</version> </dependency> <!-- camel --> <dependency> <groupid>org.apache.camel</groupid> <artifactid>camel-blueprint</artifactid> <version>2.13.0</version> <scope>provided</scope> </dependency> <dependency> <groupid>org.apache.camel</groupid> <artifactid>camel-core</artifactid> <version>2.13.0</version> <scope>provided</scope> </dependency> <dependency> <groupid>org.apache.camel</groupid> <artifactid>camel-sql</artifactid> <version>2.13.0</version> <scope>provided</scope> </dependency> <!-- http handler exposing --> <dependency> <groupid>org.glassfish.grizzly</groupid> <artifactid>grizzly-http</artifactid> <version>2.3.11</version> <scope>provided</scope> </dependency> <!-- jersey --> <dependency> <groupid>org.glassfish.jersey.containers</groupid> <artifactid>jersey-container-servlet</artifactid> <version>2.7</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupid>org.apache.felix</groupid> <artifactid>maven-bundle-plugin</artifactid> <extensions>true</extensions> <configuration> <instructions> <embed-dependency> *;scope=compile|runtime </embed-dependency> <import-package> !*, org.glassfish.grizzly.http, org.apache.camel.component.sql, org.osgi.framework </import-package> </instructions> </configuration> </plugin> </plugins> </build> </project> this 1 of blueprint xml files (this 1 causing classnotfoundexception):
<?xml version="1.0" encoding="utf-8"?> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"> <!-- camel context hold routes --> <camelcontext id="context" xmlns="http://camel.apache.org/schema/blueprint"> <routecontextref ref="newelementcontext"/> </camelcontext> <!-- osgi service beans used publish service through grizzly http server --> <bean id="endpoint" class="org.glassfish.jersey.server.internal.runtimedelegateimpl" factory-method="getinstance"> <argument index="0" ref="endpointimplementation"/> <argument index="1" value="org.glassfish.grizzly.httphandler"/> </bean> <bean id="endpointimplementation" class="com.kneipenapp.service.serviceendpoint"> <argument index="0" ref="context"/> </bean> <!-- pooled connection --> <bean id="connectionfactory" class="org.apache.commons.dbcp2.drivermanagerconnectionfactory"> <argument index="0" value="{{connection.url}}"/> <argument index="1" value="sqluser"/> <argument index="2" value="sqluserpw"/> </bean> <bean id="pooledsqlconnectionfactory" class="pooledsqlconnectionfactory"> <argument index="0" ref="connectionfactory"/> <argument index="1" value="com.mysql.jdbc.driver"/> </bean> <bean id="poolconfig" class="org.apache.commons.pool2.impl.genericobjectpoolconfig"> <property name="maxtotal" value="{{pool.maxconnections}}"/> <property name="maxidle" value="{{pool.maxidleconnections}}"/> <property name="minidle" value="{{pool.minimumidleconnections}}"/> <property name="maxwaitmillis" value="{{pool.waitinterval}}"/> </bean> <bean id="connectionpool" class="org.apache.commons.pool2.impl.genericobjectpool"> <argument index="0" ref="pooledsqlconnectionfactory"/> <argument index="1" ref="poolconfig"/> </bean> <bean id="datasource" class="org.apache.commons.dbcp2.poolingdatasource"> <argument index="0" ref="connectionpool"/> </bean> <!-- sql endpoint used route --> <bean id="sql" class="org.apache.camel.component.sql.sqlcomponent"> <property name="datasource" ref="datasource"/> </bean> </blueprint> finally exception , stacktrace recieve when try start bundle:
org.osgi.service.blueprint.container.componentdefinitionexception: unable load class pooledsqlconnectionfactory recipe beanrecipe[name='pooledsqlconnectionfactory'] @ org.apache.aries.blueprint.di.abstractrecipe.doloadtype(abstractrecipe.java:195)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.di.abstractrecipe.loadtype(abstractrecipe.java:161)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.beanrecipe.loadclass(beanrecipe.java:249)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.beanrecipe.gettype(beanrecipe.java:895)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.beanrecipe.getinstance(beanrecipe.java:323)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.beanrecipe.internalcreate2(beanrecipe.java:806)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.beanrecipe.internalcreate(beanrecipe.java:787)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.di.abstractrecipe$1.call(abstractrecipe.java:79)[4:org.apache.aries.blueprint.core:1.3.0] @ java.util.concurrent.futuretask$sync.innerrun(futuretask.java:334)[:1.7.0_25] @ java.util.concurrent.futuretask.run(futuretask.java:166)[:1.7.0_25] @ org.apache.aries.blueprint.di.abstractrecipe.create(abstractrecipe.java:88)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.di.refrecipe.internalcreate(refrecipe.java:62)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.di.abstractrecipe.create(abstractrecipe.java:106)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.beanrecipe.getinstance(beanrecipe.java:268)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.beanrecipe.internalcreate2(beanrecipe.java:806)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.beanrecipe.internalcreate(beanrecipe.java:787)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.di.abstractrecipe$1.call(abstractrecipe.java:79)[4:org.apache.aries.blueprint.core:1.3.0] @ java.util.concurrent.futuretask$sync.innerrun(futuretask.java:334)[:1.7.0_25] @ java.util.concurrent.futuretask.run(futuretask.java:166)[:1.7.0_25] @ org.apache.aries.blueprint.di.abstractrecipe.create(abstractrecipe.java:88)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.di.refrecipe.internalcreate(refrecipe.java:62)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.di.abstractrecipe.create(abstractrecipe.java:106)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.beanrecipe.getinstance(beanrecipe.java:268)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.beanrecipe.internalcreate2(beanrecipe.java:806)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.beanrecipe.internalcreate(beanrecipe.java:787)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.di.abstractrecipe$1.call(abstractrecipe.java:79)[4:org.apache.aries.blueprint.core:1.3.0] @ java.util.concurrent.futuretask$sync.innerrun(futuretask.java:334)[:1.7.0_25] @ java.util.concurrent.futuretask.run(futuretask.java:166)[:1.7.0_25] @ org.apache.aries.blueprint.di.abstractrecipe.create(abstractrecipe.java:88)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.di.refrecipe.internalcreate(refrecipe.java:62)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.di.abstractrecipe.create(abstractrecipe.java:106)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.beanrecipe.setproperty(beanrecipe.java:933)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.beanrecipe.setproperties(beanrecipe.java:907)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.beanrecipe.setproperties(beanrecipe.java:888)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.beanrecipe.internalcreate2(beanrecipe.java:820)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.beanrecipe.internalcreate(beanrecipe.java:787)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.di.abstractrecipe$1.call(abstractrecipe.java:79)[4:org.apache.aries.blueprint.core:1.3.0] @ java.util.concurrent.futuretask$sync.innerrun(futuretask.java:334)[:1.7.0_25] @ java.util.concurrent.futuretask.run(futuretask.java:166)[:1.7.0_25] @ org.apache.aries.blueprint.di.abstractrecipe.create(abstractrecipe.java:88)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.blueprintrepository.createinstances(blueprintrepository.java:245)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.blueprintrepository.createall(blueprintrepository.java:183)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.blueprintcontainerimpl.instantiateeagercomponents(blueprintcontainerimpl.java:681)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.blueprintcontainerimpl.dorun(blueprintcontainerimpl.java:378)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.blueprintcontainerimpl.run(blueprintcontainerimpl.java:269)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.blueprintextender.createcontainer(blueprintextender.java:276)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.blueprintextender.createcontainer(blueprintextender.java:245)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.blueprintextender.modifiedbundle(blueprintextender.java:235)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.util.tracker.hook.bundlehookbundletracker$tracked.customizermodified(bundlehookbundletracker.java:500)[2:org.apache.aries.util:1.1.0] @ org.apache.aries.util.tracker.hook.bundlehookbundletracker$tracked.customizermodified(bundlehookbundletracker.java:433)[2:org.apache.aries.util:1.1.0] @ org.apache.aries.util.tracker.hook.bundlehookbundletracker$abstracttracked.track(bundlehookbundletracker.java:725)[2:org.apache.aries.util:1.1.0] @ org.apache.aries.util.tracker.hook.bundlehookbundletracker$tracked.bundlechanged(bundlehookbundletracker.java:463)[2:org.apache.aries.util:1.1.0] @ org.apache.aries.util.tracker.hook.bundlehookbundletracker$bundleeventhook.event(bundlehookbundletracker.java:422)[2:org.apache.aries.util:1.1.0] @ org.apache.felix.framework.util.secureaction.invokebundleeventhook(secureaction.java:1103)[org.apache.felix.framework-4.2.1.jar:] @ org.apache.felix.framework.util.eventdispatcher.createwhitelistfromhooks(eventdispatcher.java:695)[org.apache.felix.framework-4.2.1.jar:] @ org.apache.felix.framework.util.eventdispatcher.firebundleevent(eventdispatcher.java:483)[org.apache.felix.framework-4.2.1.jar:] @ org.apache.felix.framework.felix.firebundleevent(felix.java:4403)[org.apache.felix.framework-4.2.1.jar:] @ org.apache.felix.framework.felix.startbundle(felix.java:2092)[org.apache.felix.framework-4.2.1.jar:] @ org.apache.felix.framework.bundleimpl.start(bundleimpl.java:955)[org.apache.felix.framework-4.2.1.jar:] @ org.apache.felix.fileinstall.internal.directorywatcher.startbundle(directorywatcher.java:1247)[16:org.apache.felix.fileinstall:3.2.6] @ org.apache.felix.fileinstall.internal.directorywatcher.startbundles(directorywatcher.java:1219)[16:org.apache.felix.fileinstall:3.2.6] @ org.apache.felix.fileinstall.internal.directorywatcher.startallbundles(directorywatcher.java:1208)[16:org.apache.felix.fileinstall:3.2.6] @ org.apache.felix.fileinstall.internal.directorywatcher.process(directorywatcher.java:503)[16:org.apache.felix.fileinstall:3.2.6] @ org.apache.felix.fileinstall.internal.directorywatcher.run(directorywatcher.java:291)[16:org.apache.felix.fileinstall:3.2.6] caused by: java.lang.classnotfoundexception: pooledsqlconnectionfactory not found com.kneipenapp.web-service [80] @ org.apache.felix.framework.bundlewiringimpl.findclassorresourcebydelegation(bundlewiringimpl.java:1532)[org.apache.felix.framework-4.2.1.jar:] @ org.apache.felix.framework.bundlewiringimpl.access$400(bundlewiringimpl.java:75)[org.apache.felix.framework-4.2.1.jar:] @ org.apache.felix.framework.bundlewiringimpl$bundleclassloader.loadclass(bundlewiringimpl.java:1955)[org.apache.felix.framework-4.2.1.jar:] @ java.lang.classloader.loadclass(classloader.java:357)[:1.7.0_25] @ org.apache.felix.framework.felix.loadbundleclass(felix.java:1844)[org.apache.felix.framework-4.2.1.jar:] @ org.apache.felix.framework.bundleimpl.loadclass(bundleimpl.java:937)[org.apache.felix.framework-4.2.1.jar:] @ org.apache.aries.blueprint.container.blueprintcontainerimpl.loadclass(blueprintcontainerimpl.java:432)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.blueprintrepository.loadclass(blueprintrepository.java:410)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.container.generictype.parse(generictype.java:113)[4:org.apache.aries.blueprint.core:1.3.0] @ org.apache.aries.blueprint.di.abstractrecipe.doloadtype(abstractrecipe.java:168)[4:org.apache.aries.blueprint.core:1.3.0] ... 63 more if has clue how solved, i'd more happy hear it
greetings, pascal
maybe, should use full qualified class name including package name while specifying class parameter of bean element. in 'connectionfactory' bean above 'pooledsqlconnectionfactory'.
Comments
Post a Comment