Declaring them on the import statement of the bundle seem to have worked. Thank you all for the help and suggestions!
2011/11/8 Łukasz Dywicki <[email protected]>: > Hey Otavio, > You can verify what is exposed by two commands: > packages:imports <bundle-id> > packages:exports <bundle-id> > > Also if you library try to use Thread ContextClassLoader you may get these > errors. > > Regards, > Lukasz > >> Hello, >> >> I am having problems making Karaf load the contents of a non-bundled >> java library (Webpshere MQ client 6.0.2.4). >> >> To have Karaf use them, I have added the following files to the lib >> directory: >> - com.ibm.mq.jar >> - ibm.mqjms.jar >> - dhbcore.jar >> >> After that, I modified the startup script so that it loaded those >> files. Additionally, I configured the custom.properties file so that >> they are accessible from outside: >> >> org.osgi.framework.system.packages.extra=com.google.common.base,\ >> com.google.common.collect,sun.misc, com.ibm.mq, com.ibm.mq.jms,\ >> com.ibm.msg.client.jms,com.ibm.disthub2.*,com.google.common.collect.* >> >> Even after doing that, when I deploy my bundle it stays in "resolved" >> state and does nothing. When I bounce Karaf, I get the following >> exception: >> >> ERROR: Bundle com.spcs.wsd [78] Error starting >> file:/home/orpiske/environments/wsd-transaction-core-0.0.1-SNAPSHOT/deploy/service_manager-0.0.1-SNAPSHOT-bundle.jar >> (org.osgi.framework.BundleException: Activator start error in bundle >> com.spcs.wsd [78]. >> java.lang.NoClassDefFoundError: com/ibm/mq/jms/MQQueueConnectionFactory >> at >> com.spcs.wsd.camel.wmq.WmqJmsComponentBuilder.getMQQueueConnectionFactory(WmqJmsComponentBuilder.java:58) >> at >> com.spcs.wsd.camel.wmq.WmqJmsComponentBuilder.build(WmqJmsComponentBuilder.java:84) >> at >> com.spcs.wsd.service.manager.ServiceManager.registerNewComponent(ServiceManager.java:28) >> at >> com.spcs.wsd.service.manager.ServiceManager.<init>(ServiceManager.java:22) >> at >> com.spcs.wsd.service.manager.ServiceActivationManager.start(ServiceActivationManager.java:19) >> at >> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:629) >> at org.apache.felix.framework.Felix.activateBundle(Felix.java:1842) >> at org.apache.felix.framework.Felix.startBundle(Felix.java:1759) >> at >> org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1163) >> at >> org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:264) >> at java.lang.Thread.run(Thread.java:662) >> >> >> It looks like Karaf is not exposing or being able to expose the >> contents of that package to other classes. I did a quick test, >> following those steps, but exposing a simple hello-world jar and it >> works flawlessly. >> >> In addition to those steps, I also tried to run "osgi:install -w >> wrap:file:lib/filename.jar" but it did not work either. >> >> Would anyone know would prevent Karaf from accessing that library or >> would have any idea of how to overcome this? >> >> Regards >> -- >> Otavio R. Piske >> http://orpiske.net > > -- Otavio R. Piske http://orpiske.net
