7 Replies Latest reply on Aug 3, 2012 3:14 PM by thomas.diesler

    Dependency Problems when using Axis 1.4 with OSGi (javax.xml.rpc.Service not found)

    thehashcoder

      Hi All,

       

      I am facing some dependency problems when I try to use some Axis classes. I am using JBoss AS 7.1.2 (EAP 6). I have a simple bundle where I have a class which extends from org.apache.axis.client.Service, which has a simple method getGreetings(). (I have attached whole code here)

       

       

      import org.apache.axis.client.Service;

       

       

      public class InventoryServiceLocator extends Service{

         

          /**

           *

           */

          private static final long serialVersionUID = 1L;

       

          public String getGreetings() {

              return "Helloo EveryOne!!!";

          }

       

      }

       

      I am facing problem when I try to instantiate this class (InventoryServiceLocator). The exception which is thrown is java.lang.NoClassDefFoundError: javax/xml/rpc/Service. Below is the full stack trace.

       

       

       

               Caused by: java.lang.NoClassDefFoundError: javax/xml/rpc/Service

              at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.6.0_23]

              at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) [rt.jar:1.6.0_23]

              at java.lang.ClassLoader.defineClass(ClassLoader.java:616) [rt.jar:1.6.0_23]

              at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) [rt.jar:1.6.0_23]

              at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:327)

              at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:391)

              ... 63 more

      Caused by: java.lang.ClassNotFoundException: javax.xml.rpc.Service from [Module "deployment.RanisJars:1.0.0" from Service Module Loader]

              at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)

              at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)

              at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)

              at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)

              at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)

              at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)

              ... 69 more

       

      14:42:27,201 WARN  [org.jboss.modules] (HttpManagementService-threads - 5) Failed to define class simplebundle.InventoryServiceLocator in Module "deployme

      m Service Module Loader)

              at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:396)

              at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:243)

              at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:73)

              at org.jboss.modules.FilteredLocalLoader.loadClassLocal(FilteredLocalLoader.java:46)

              at org.jboss.modules.Module.loadModuleClass(Module.java:527)

              at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:182)

              at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)

              at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)

              at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)

              at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)

              at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)

              at simplebundle.SimpleTest.test(SimpleTest.java:7)

              at simplebundle.Activator.start(Activator.java:14)

              at org.jboss.osgi.framework.internal.HostBundleState.transitionToActive(HostBundleState.java:321)

              at org.jboss.osgi.framework.internal.HostBundleState.startInternal(HostBundleState.java:245)

              at org.jboss.osgi.framework.internal.AbstractBundleState.start(AbstractBundleState.java:485)

              at org.jboss.as.osgi.management.BundleResourceHandler.handleOperation(BundleResourceHandler.java:145)

              at org.jboss.as.osgi.management.BundleResourceHandler.executeRuntimeStep(BundleResourceHandler.java:99)

              at org.jboss.as.controller.AbstractRuntimeOnlyHandler$1.execute(AbstractRuntimeOnlyHandler.java:90)

              at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:397)

              at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:284)

              at org.jboss.as.controller.AbstractOperationContext.completeStep(AbstractOperationContext.java:211)

              at org.jboss.as.controller.ModelControllerImpl$DefaultPrepareStepHandler.execute(ModelControllerImpl.java:473)

              at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:397)

              at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:284)

              at org.jboss.as.controller.AbstractOperationContext.completeStep(AbstractOperationContext.java:211)

              at org.jboss.as.controller.ModelControllerImpl.internalExecute(ModelControllerImpl.java:126)

              at org.jboss.as.controller.ModelControllerImpl.execute(ModelControllerImpl.java:111)

              at org.jboss.as.controller.ModelControllerImpl$1.execute(ModelControllerImpl.java:316)

              at org.jboss.as.controller.ModelControllerImpl$1.execute(ModelControllerImpl.java:306)

              at org.jboss.as.domain.http.server.DomainApiHandler.processRequest(DomainApiHandler.java:319)

              at org.jboss.as.domain.http.server.DomainApiHandler.doHandle(DomainApiHandler.java:225)

              at org.jboss.as.domain.http.server.DomainApiHandler.handle(DomainApiHandler.java:232)

              at org.jboss.as.domain.http.server.security.SubjectAssociationHandler.handle(SubjectAssociationHandler.java:51)

              at org.jboss.com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:78)

              at org.jboss.sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:69)

              at org.jboss.com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:81)

              at org.jboss.sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:710)

              at org.jboss.com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:78)

              at org.jboss.as.domain.http.server.RealmReadinessFilter.doFilter(RealmReadinessFilter.java:54)

              at org.jboss.com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:81)

              at org.jboss.sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:682)

              at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_23]

              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_23]

              at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_23]

              at org.jboss.threads.JBossThread.run(JBossThread.java:122)

      Caused by: java.lang.NoClassDefFoundError: org/apache/axis/client/Service

              at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.6.0_23]

              at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) [rt.jar:1.6.0_23]

              at java.lang.ClassLoader.defineClass(ClassLoader.java:616) [rt.jar:1.6.0_23]

              at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) [rt.jar:1.6.0_23]

              at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:327)

              at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:391)

      Caused by: java.lang.ClassNotFoundException: org.apache.axis.client.Service from [Module "deployment.SimpleBundle:1.0.0.201207311441" from Service Module Loa

              at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)

              at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)

              at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)

              at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)

              at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)

              at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)

              at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)

              ... 51 more

       

      14:42:27,217 ERROR [org.jboss.as.osgi] (HttpManagementService-threads - 5) JBAS011909: Management operation 'start' failed: org.osgi.framework.BundleExceptio

              at org.jboss.osgi.framework.internal.HostBundleState.transitionToActive(HostBundleState.java:349)

              at org.jboss.osgi.framework.internal.HostBundleState.startInternal(HostBundleState.java:245)

              at org.jboss.osgi.framework.internal.AbstractBundleState.start(AbstractBundleState.java:485)

              at org.jboss.as.osgi.management.BundleResourceHandler.handleOperation(BundleResourceHandler.java:145)

              at org.jboss.as.osgi.management.BundleResourceHandler.executeRuntimeStep(BundleResourceHandler.java:99)

              at org.jboss.as.controller.AbstractRuntimeOnlyHandler$1.execute(AbstractRuntimeOnlyHandler.java:90) [jboss-as-controller-7.1.2.Final-redhat-1.jar:7.1

              at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:397) [jboss-as-controller-7.1.2.Final-redhat-1.jar:7.1.

              at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:284) [jboss-as-controller-7.1.2.Final-redhat-1.jar:7

              at org.jboss.as.controller.AbstractOperationContext.completeStep(AbstractOperationContext.java:211) [jboss-as-controller-7.1.2.Final-redhat-1.jar:7.1

              at org.jboss.as.controller.ModelControllerImpl$DefaultPrepareStepHandler.execute(ModelControllerImpl.java:473) [jboss-as-controller-7.1.2.Final-redha

              at org.jboss.as.controller.AbstractOperationContext.executeStep(AbstractOperationContext.java:397) [jboss-as-controller-7.1.2.Final-redhat-1.jar:7.1.

              at org.jboss.as.controller.AbstractOperationContext.doCompleteStep(AbstractOperationContext.java:284) [jboss-as-controller-7.1.2.Final-redhat-1.jar:7

              at org.jboss.as.controller.AbstractOperationContext.completeStep(AbstractOperationContext.java:211) [jboss-as-controller-7.1.2.Final-redhat-1.jar:7.1

              at org.jboss.as.controller.ModelControllerImpl.internalExecute(ModelControllerImpl.java:126) [jboss-as-controller-7.1.2.Final-redhat-1.jar:7.1.2.Fina

              at org.jboss.as.controller.ModelControllerImpl.execute(ModelControllerImpl.java:111) [jboss-as-controller-7.1.2.Final-redhat-1.jar:7.1.2.Final-redhat

              at org.jboss.as.controller.ModelControllerImpl$1.execute(ModelControllerImpl.java:316) [jboss-as-controller-7.1.2.Final-redhat-1.jar:7.1.2.Final-redh

              at org.jboss.as.controller.ModelControllerImpl$1.execute(ModelControllerImpl.java:306) [jboss-as-controller-7.1.2.Final-redhat-1.jar:7.1.2.Final-redh

              at org.jboss.as.domain.http.server.DomainApiHandler.processRequest(DomainApiHandler.java:319)

              at org.jboss.as.domain.http.server.DomainApiHandler.doHandle(DomainApiHandler.java:225)

              at org.jboss.as.domain.http.server.DomainApiHandler.handle(DomainApiHandler.java:232)

              at org.jboss.as.domain.http.server.security.SubjectAssociationHandler.handle(SubjectAssociationHandler.java:51)

              at org.jboss.com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:78)

              at org.jboss.sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:69)

              at org.jboss.com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:81)

              at org.jboss.sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:710)

              at org.jboss.com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:78)

              at org.jboss.as.domain.http.server.RealmReadinessFilter.doFilter(RealmReadinessFilter.java:54)

              at org.jboss.com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:81)

              at org.jboss.sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:682)

              at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_23]

              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_23]

              at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_23]

              at org.jboss.threads.JBossThread.run(JBossThread.java:122) [jboss-threads-2.0.0.GA-redhat-1.jar:2.0.0.GA-redhat-1]

      Caused by: java.lang.NoClassDefFoundError: simplebundle/InventoryServiceLocator

              at simplebundle.SimpleTest.test(SimpleTest.java:7)

              at simplebundle.Activator.start(Activator.java:14)

              at org.jboss.osgi.framework.internal.HostBundleState.transitionToActive(HostBundleState.java:321)

              ... 32 more

      Caused by: java.lang.ClassNotFoundException: simplebundle.InventoryServiceLocator from [Module "deployment.SimpleBundle:1.0.0.201207311441" from Service Modu

              at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) [jboss-modules.jar:1.1.2.GA-redhat-1]

              at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) [jboss-modules.jar:1.1.2.GA-redhat-1]

              at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) [jboss-modules.jar:1.1.2.GA-redhat-1]

              at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423) [jboss-modules.jar:1.1.2.GA-redhat-1]

              at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) [jboss-modules.jar:1.1.2.GA-redhat-1]

              at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) [jboss-modules.jar:1.1.2.GA-redhat-1]

              ... 35 more

       

      I am exporting Axis,commons,log4j packages from another bundle called RanisJars. I am pasting the MANIFEST.MF file for the same below.

      Manifest-Version: 1.0

      Bundle-ManifestVersion: 2

      Bundle-Name: RanisJars

      Bundle-SymbolicName: RanisJars

      Bundle-Version: 1.0.0

      Bundle-ClassPath: .

      Export-Package: com.ibm.wsdl,

      com.ibm.wsdl.extensions,

      com.ibm.wsdl.extensions.http,

      com.ibm.wsdl.extensions.mime,

      com.ibm.wsdl.extensions.schema,

      com.ibm.wsdl.extensions.soap,

      com.ibm.wsdl.factory,

      com.ibm.wsdl.util,

      com.ibm.wsdl.util.xml,

      com.ibm.wsdl.xml,

      org.apache.axis,

      org.apache.axis.attachments,

      org.apache.axis.client,

      org.apache.axis.client.async,

      org.apache.axis.collections,

      org.apache.axis.components.compiler,

      org.apache.axis.components.encoding,

      org.apache.axis.components.image,

      org.apache.axis.components.jms,

      org.apache.axis.components.logger,

      org.apache.axis.components.net,

      org.apache.axis.components.script,

      org.apache.axis.components.threadpool,

      org.apache.axis.components.uuid,

      org.apache.axis.configuration,

      org.apache.axis.constants,

      org.apache.axis.deployment.wsdd,

      org.apache.axis.deployment.wsdd.providers,

      org.apache.axis.description,

      org.apache.axis.encoding,

      org.apache.axis.encoding.ser,

      org.apache.axis.encoding.ser.castor,

      org.apache.axis.handlers,

      org.apache.axis.handlers.http,

      org.apache.axis.handlers.soap,

      org.apache.axis.holders,

      org.apache.axis.i18n,

      org.apache.axis.management,

      org.apache.axis.management.jmx,

      org.apache.axis.message,

      org.apache.axis.monitor,

      org.apache.axis.providers,

      org.apache.axis.providers.java,

      org.apache.axis.schema,

      org.apache.axis.security,

      org.apache.axis.security.servlet,

      org.apache.axis.security.simple,

      org.apache.axis.server,

      org.apache.axis.session,

      org.apache.axis.soap,

      org.apache.axis.strategies,

      org.apache.axis.transport.http,

      org.apache.axis.transport.java,

      org.apache.axis.transport.jms,

      org.apache.axis.transport.local,

      org.apache.axis.transport.mail,

      org.apache.axis.types,

      org.apache.axis.utils,

      org.apache.axis.utils.bytecode,

      org.apache.axis.utils.cache,

      org.apache.axis.wsdl,

      org.apache.axis.wsdl.fromJava,

      org.apache.axis.wsdl.gen,

      org.apache.axis.wsdl.symbolTable,

      org.apache.axis.wsdl.toJava,

      org.apache.commons.beanutils,

      org.apache.commons.beanutils.converters,

      org.apache.commons.beanutils.locale,

      org.apache.commons.beanutils.locale.converters,

      org.apache.commons.logging,

      org.apache.commons.logging.impl,

      org.apache.log4j,

      org.apache.log4j.chainsaw,

      org.apache.log4j.config,

      org.apache.log4j.helpers,

      org.apache.log4j.jdbc,

      org.apache.log4j.jmx,

      org.apache.log4j.lf5,

      org.apache.log4j.lf5.util,

      org.apache.log4j.lf5.viewer,

      org.apache.log4j.lf5.viewer.categoryexplorer,

      org.apache.log4j.lf5.viewer.configure,

      org.apache.log4j.net,

      org.apache.log4j.nt,

      org.apache.log4j.or,

      org.apache.log4j.or.jms,

      org.apache.log4j.or.sax,

      org.apache.log4j.spi,

      org.apache.log4j.varia,

      org.apache.log4j.xml

      Bundle-RequiredExecutionEnvironment: JavaSE-1.6

      Import-Package: com.ibm.wsdl,

      com.ibm.wsdl.extensions,

      com.ibm.wsdl.extensions.http,

      com.ibm.wsdl.extensions.mime,

      com.ibm.wsdl.extensions.schema,

      com.ibm.wsdl.extensions.soap,

      com.ibm.wsdl.factory,

      com.ibm.wsdl.util,

      com.ibm.wsdl.util.xml,

      com.ibm.wsdl.xml,

      org.apache.axis,

      org.apache.axis.attachments,

      org.apache.axis.client,

      org.apache.axis.client.async,

      org.apache.axis.collections,

      org.apache.axis.components.compiler,

      org.apache.axis.components.encoding,

      org.apache.axis.components.image,

      org.apache.axis.components.jms,

      org.apache.axis.components.logger,

      org.apache.axis.components.net,

      org.apache.axis.components.script,

      org.apache.axis.components.threadpool,

      org.apache.axis.components.uuid,

      org.apache.axis.configuration,

      org.apache.axis.constants,

      org.apache.axis.deployment.wsdd,

      org.apache.axis.deployment.wsdd.providers,

      org.apache.axis.description,

      org.apache.axis.encoding,

      org.apache.axis.encoding.ser,

      org.apache.axis.encoding.ser.castor,

      org.apache.axis.handlers,

      org.apache.axis.handlers.http,

      org.apache.axis.handlers.soap,

      org.apache.axis.holders,

      org.apache.axis.i18n,

      org.apache.axis.management,

      org.apache.axis.management.jmx,

      org.apache.axis.message,

      org.apache.axis.monitor,

      org.apache.axis.providers,

      org.apache.axis.providers.java,

      org.apache.axis.schema,

      org.apache.axis.security,

      org.apache.axis.security.servlet,

      org.apache.axis.security.simple,

      org.apache.axis.server,

      org.apache.axis.session,

      org.apache.axis.soap,

      org.apache.axis.strategies,

      org.apache.axis.transport.http,

      org.apache.axis.transport.java,

      org.apache.axis.transport.jms,

      org.apache.axis.transport.local,

      org.apache.axis.transport.mail,

      org.apache.axis.types,

      org.apache.axis.utils,

      org.apache.axis.utils.bytecode,

      org.apache.axis.utils.cache,

      org.apache.axis.wsdl,

      org.apache.axis.wsdl.fromJava,

      org.apache.axis.wsdl.gen,

      org.apache.axis.wsdl.symbolTable,

      org.apache.axis.wsdl.toJava,

      org.apache.commons.beanutils,

      org.apache.commons.beanutils.converters,

      org.apache.commons.beanutils.locale,

      org.apache.commons.beanutils.locale.converters,

      org.apache.commons.logging,

      org.apache.commons.logging.impl,

      org.apache.log4j,

      org.apache.log4j.chainsaw,

      org.apache.log4j.config,

      org.apache.log4j.helpers,

      org.apache.log4j.jdbc,

      org.apache.log4j.jmx,

      org.apache.log4j.lf5,

      org.apache.log4j.lf5.util,

      org.apache.log4j.lf5.viewer,

      org.apache.log4j.lf5.viewer.categoryexplorer,

      org.apache.log4j.lf5.viewer.configure,

      org.apache.log4j.net,

      org.apache.log4j.nt,

      org.apache.log4j.or,

      org.apache.log4j.or.jms,

      org.apache.log4j.or.sax,

      org.apache.log4j.spi,

      org.apache.log4j.varia,

      org.apache.log4j.xml,

      javax.wsdl,

      javax.wsdl.extensions,

      javax.wsdl.extensions.http,

      javax.wsdl.extensions.mime,

      javax.wsdl.extensions.schema,

      javax.wsdl.extensions.soap,

      javax.wsdl.factory,

      javax.wsdl.xml,

      javax.xml.rpc,

      javax.xml.rpc.encoding,

      javax.xml.rpc.handler,

      javax.xml.rpc.handler.soap,

      javax.xml.rpc.holders,

      javax.xml.rpc.server,

      javax.xml.rpc.soap,

      javax.xml.soap,

      javax.xml.stream,

      javax.xml.stream.events,

      javax.xml.stream.util,

      javax.xml.ws,

      javax.xml.ws.handler,

      javax.xml.ws.handler.soap,

      javax.xml.ws.http,

      javax.xml.ws.soap,

      javax.xml.ws.spi,

      org.w3c.dom

       

       

      And I have configured my JBoss to provide javax.* packages, in standalone.xml as shown below.

       

      <property name="org.osgi.framework.system.packages.extra">

                          javax.wsdl,

                           javax.wsdl.extensions,

                           javax.wsdl.extensions.http,

                           javax.wsdl.extensions.mime,

                           javax.wsdl.extensions.schema,

                           javax.wsdl.extensions.soap,

                           javax.wsdl.factory,

                           javax.wsdl.xml,

                           javax.xml.rpc,

                           javax.xml.rpc.encoding,

                           javax.xml.rpc.handler,

                           javax.xml.rpc.handler.soap,

                           javax.xml.rpc.holders,

                           javax.xml.rpc.server,

                           javax.xml.rpc.soap,

                           javax.xml.soap,

                           javax.xml.stream,

                           javax.xml.stream.events,

                           javax.xml.stream.util,

                           javax.xml.ws,

                           javax.xml.ws.handler,

                           javax.xml.ws.handler.soap,

                           javax.xml.ws.http,

                           javax.xml.ws.soap,

                           javax.xml.ws.spi,

                           org.w3c.dom

                      </property>

                  </properties>

                  <capabilities>

                      <capability name="javax.servlet.api:v25"/>

                      <capability name="javax.transaction.api"/>

                      <capability name="org.apache.felix.log" startlevel="1"/>

                      <capability name="org.jboss.osgi.logging" startlevel="1"/>

                      <capability name="org.apache.felix.configadmin" startlevel="1"/>

                      <capability name="org.jboss.as.osgi.configadmin" startlevel="1"/>

                      <capability name="org.ops4j.pax.web:pax-web-jetty-bundle:1.1.2" startlevel="1"/>

                      <capability name="org.ops4j.pax.web:pax-web-jsp:1.1.2" startlevel="1"/>

                      <capability name="org.ops4j.pax.web:pax-web-extender-war:1.1.2" startlevel="1"/>

                  </capabilities>

       

      I import the Axis dependencies as well as javax.* dependencies as shown below, in the MANIFEST of my SimpleBundle.

       

      Manifest-Version: 1.0

      Bundle-ManifestVersion: 2

      Bundle-Name: SimpleBundle

      Bundle-SymbolicName: SimpleBundle

      Bundle-Version: 1.0.0.qualifier

      Bundle-Activator: simplebundle.Activator

      Bundle-ActivationPolicy: lazy

      Bundle-RequiredExecutionEnvironment: JavaSE-1.6

      Import-Package: org.osgi.framework;version="1.3.0",

      com.ibm.wsdl,

      com.ibm.wsdl.extensions,

      com.ibm.wsdl.extensions.http,

      com.ibm.wsdl.extensions.mime,

      com.ibm.wsdl.extensions.schema,

      com.ibm.wsdl.extensions.soap,

      com.ibm.wsdl.factory,

      com.ibm.wsdl.util,

      com.ibm.wsdl.util.xml,

      com.ibm.wsdl.xml,

      org.apache.axis,

      org.apache.axis.attachments,

      org.apache.axis.client,

      org.apache.axis.client.async,

      org.apache.axis.collections,

      org.apache.axis.components.compiler,

      org.apache.axis.components.encoding,

      org.apache.axis.components.image,

      org.apache.axis.components.jms,

      org.apache.axis.components.logger,

      org.apache.axis.components.net,

      org.apache.axis.components.script,

      org.apache.axis.components.threadpool,

      org.apache.axis.components.uuid,

      org.apache.axis.configuration,

      org.apache.axis.constants,

      org.apache.axis.deployment.wsdd,

      org.apache.axis.deployment.wsdd.providers,

      org.apache.axis.description,

      org.apache.axis.encoding,

      org.apache.axis.encoding.ser,

      org.apache.axis.encoding.ser.castor,

      org.apache.axis.handlers,

      org.apache.axis.handlers.http,

      org.apache.axis.handlers.soap,

      org.apache.axis.holders,

      org.apache.axis.i18n,

      org.apache.axis.management,

      org.apache.axis.management.jmx,

      org.apache.axis.message,

      org.apache.axis.monitor,

      org.apache.axis.providers,

      org.apache.axis.providers.java,

      org.apache.axis.schema,

      org.apache.axis.security,

      org.apache.axis.security.servlet,

      org.apache.axis.security.simple,

      org.apache.axis.server,

      org.apache.axis.session,

      org.apache.axis.soap,

      org.apache.axis.strategies,

      org.apache.axis.transport.http,

      org.apache.axis.transport.java,

      org.apache.axis.transport.jms,

      org.apache.axis.transport.local,

      org.apache.axis.transport.mail,

      org.apache.axis.types,

      org.apache.axis.utils,

      org.apache.axis.utils.bytecode,

      org.apache.axis.utils.cache,

      org.apache.axis.wsdl,

      org.apache.axis.wsdl.fromJava,

      org.apache.axis.wsdl.gen,

      org.apache.axis.wsdl.symbolTable,

      org.apache.axis.wsdl.toJava,

      org.apache.commons.beanutils,

      org.apache.commons.beanutils.converters,

      org.apache.commons.beanutils.locale,

      org.apache.commons.beanutils.locale.converters,

      org.apache.commons.logging,

      org.apache.commons.logging.impl,

      org.apache.log4j,

      org.apache.log4j.chainsaw,

      org.apache.log4j.config,

      org.apache.log4j.helpers,

      org.apache.log4j.jdbc,

      org.apache.log4j.jmx,

      org.apache.log4j.lf5,

      org.apache.log4j.lf5.util,

      org.apache.log4j.lf5.viewer,

      org.apache.log4j.lf5.viewer.categoryexplorer,

      org.apache.log4j.lf5.viewer.configure,

      org.apache.log4j.net,

      org.apache.log4j.nt,

      org.apache.log4j.or,

      org.apache.log4j.or.jms,

      org.apache.log4j.or.sax,

      org.apache.log4j.spi,

      org.apache.log4j.varia,

      org.apache.log4j.xml,

      javax.wsdl,

      javax.wsdl.extensions,

      javax.wsdl.extensions.http,

      javax.wsdl.extensions.mime,

      javax.wsdl.extensions.schema,

      javax.wsdl.extensions.soap,

      javax.wsdl.factory,

      javax.wsdl.xml,

      javax.xml.rpc,

      javax.xml.rpc.encoding,

      javax.xml.rpc.handler,

      javax.xml.rpc.handler.soap,

      javax.xml.rpc.holders,

      javax.xml.rpc.server,

      javax.xml.rpc.soap,

      javax.xml.soap,

      javax.xml.stream,

      javax.xml.stream.events,

      javax.xml.stream.util,

      javax.xml.ws,

      javax.xml.ws.handler,

      javax.xml.ws.handler.soap,

      javax.xml.ws.http,

      javax.xml.ws.soap,

      javax.xml.ws.spi,

      org.w3c.dom

       

       

      Could some one please go through the code and tell em what am I doing seriously wrong here??

       

       

      Thanks in Advance

      Ranis MK

        • 1. Re: Dependency Problems when using Axis 1.4 with OSGi (javax.xml.rpc.Service not found)
          thomas.diesler

          what does the debug log say?

          • 2. Re: Dependency Problems when using Axis 1.4 with OSGi (javax.xml.rpc.Service not found)
            thomas.diesler

            I added these capabilities

             

            <capability name="javax.wsdl4j.api"/>
            <capability name="javax.xml.rpc.api"/>
            

             

            You do not need to export the packages from the system CL

             

            Your Ranis bundle starts fine

             

            15:43:40,756 INFO  [org.jboss.osgi.framework] (MSC service thread 1-3) JBOSGI011006: OSGi Framework - 2.0.0.CR15-SNAPSHOT
            15:43:41,080 INFO  [org.jboss.osgi.framework] (MSC service thread 1-3) JBOSGI011001: Bundle installed: jboss-osgi-logging:1.0.0
            15:43:41,082 INFO  [org.jboss.osgi.framework] (MSC service thread 1-1) JBOSGI011001: Bundle installed: org.apache.felix.log:1.0.0
            15:43:41,086 INFO  [org.jboss.osgi.framework] (MSC service thread 1-2) JBOSGI011001: Bundle installed: org.apache.felix.configadmin:1.2.8
            15:43:41,087 INFO  [org.jboss.osgi.framework] (MSC service thread 1-4) JBOSGI011001: Bundle installed: jboss-as-osgi-configadmin:7.2.0.Alpha1-SNAPSHOT
            15:43:41,338 INFO  [org.jboss.osgi.framework] (MSC service thread 1-4) JBOSGI011001: Bundle installed: RanisJars:1.0.0
            15:43:41,687 INFO  [org.jboss.osgi.framework] (MSC service thread 1-1) JBOSGI011011: Starting bundles for start level: 1
            15:43:41,742 INFO  [org.jboss.osgi.framework] (MSC service thread 1-1) JBOSGI011002: Bundle started: org.apache.felix.log:1.0.0
            15:43:41,771 INFO  [org.jboss.osgi.framework] (MSC service thread 1-1) JBOSGI011002: Bundle started: jboss-osgi-logging:1.0.0
            15:43:41,797 INFO  [org.jboss.osgi.framework] (MSC service thread 1-1) JBOSGI011002: Bundle started: jboss-as-osgi-configadmin:7.2.0.Alpha1-SNAPSHOT
            15:43:41,880 INFO  [org.jboss.osgi.framework] (MSC service thread 1-1) JBOSGI011002: Bundle started: org.apache.felix.configadmin:1.2.8
            15:43:41,881 INFO  [org.jboss.osgi.framework] (MSC service thread 1-1) JBOSGI011002: Bundle started: RanisJars:1.0.0
            15:43:41,889 INFO  [org.jboss.osgi.framework] (MSC service thread 1-1) JBOSGI011000: OSGi Framework started
            

             

            I then installed your SimpleBundle, which also works

             

            15:45:27,080 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) JBAS015876: Starting deployment of "SimpleBundle_1.0.0.201207311521.jar"
            15:45:27,159 INFO  [org.jboss.osgi.framework] (MSC service thread 1-4) JBOSGI011001: Bundle installed: SimpleBundle:1.0.0.201207311521
            15:45:27,560 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 1) JBAS018559: Deployed "SimpleBundle_1.0.0.201207311521.jar"
            

             

            because of the lazy activation policy, it does not resolve/start automatically.

             

            When I start the bundle through the console, I get

             

            15:47:05,197 WARN  [org.jboss.modules] (HttpManagementService-threads - 2) Failed to define class org.apache.axis.client.Service in Module "deployment.RanisJars_1.0.0.jar:main" from Service Module Loader: java.lang.LinkageError: Failed to link org/apache/axis/client/Service (Module "deployment.RanisJars_1.0.0.jar:main" from Service Module Loader)
                at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:396)
                at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:243)
            ...
            Caused by: java.lang.NoClassDefFoundError: javax/naming/Referenceable
                at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.6.0_33]
                at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) [rt.jar:1.6.0_33]
                at java.lang.ClassLoader.defineClass(ClassLoader.java:615) [rt.jar:1.6.0_33]
                at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) [rt.jar:1.6.0_33]
                at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:327)
                at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:391)
            

             

            which is because Ranis does not have a wire to javax.naming. You need to import that package in Ranis.

            • 3. Re: Dependency Problems when using Axis 1.4 with OSGi (javax.xml.rpc.Service not found)
              thomas.diesler

              BTW, you import/export a boat load of stuff from these bundles, which seems like a massive hack.

               

              Instead, I suggest you step back a little and think about the contract between these bundles.

               

              Ranis should only export packages that are part of the public contract. Implemenation details should not be exported. You also would not want to import stuff to Ranis that does not come from a public contract defined else where.

               

              SimpleBundle should only import the public contract from Ranis.

               

              As a starting point

               

              * SimpleBundle uses org.apache.axis.client so that should be exported from Ranis

              * Ranis and perhaps SimpleBundle should import javax.wsdl, javax.naming, javax.xml.rpc - these contracts are defined by the respective capability bundles

               

              Start with a small contract, add stuff to the imports/exports as needed. An API that SimpleBundle does not use does not need to get imported nor exported from Ranis.

               

              Not sure if this is the case, but if Ranis is supposed to provide RPC client API - then only export that. If possible I'd also suggest to keep Axis API's local to Ranis. SimpleBundle can probably interface with the standard RPC XML APIs. Doing this is good modularity because you can change the provider of these RPC Client APIs without having to touch SimpleBundle (e.g. switch from Axis to CXF)

               

              And if you want to be a really smart OSGi citizen then Ranis would register a service that SimpleBundle can use to build the RPC client. Only javax.* and your ranis.xml.rpc service package would be public contract. In future you might have multiple providers of that ranis.xml.rpc service. Clients could choose the provider based on service properties. The implementations could be enabled/disabled/updated and so on ...

              1 of 1 people found this helpful
              • 4. Re: Dependency Problems when using Axis 1.4 with OSGi (javax.xml.rpc.Service not found)
                thehashcoder

                Hi Thomas,

                 

                Thanks a lot for helping me out. I know I am not doing the right thing with imports and exports. But I thought I will some how get this thing work, then  improve it. I also forgot to mention that I am able to run this in Equinox inside Eclipse.

                 

                I didn't quite get the steps you followed. What I did is, I added both the capabilities as you said. Then deleted all the exports from System CL. But when I started my bundles ( I didn't import javax.naming. yet) I am getting following errors

                 

                13:55:16,748 ERROR [org.jboss.osgi.framework] (MSC service thread 1-2) JBOSGI011026: Framework Error: org.osgi.framework.BundleException: Unable to resolve HostBundleRevision[RanisJars:1.0.0]: missing requirement AbstractPackageRequirement[atts={osgi.wiring.package=javax.xml.rpc},[RanisJars:1.0.0]] [caused by: Unable to resolve AbstractResource[org

                .jboss.spec.javax.xml.rpc.jboss-jaxrpc-api_1.1_spec:1.0.1.Final-redhat-1]: missing requirement AbstractPackageRequirement[atts={osgi.wiring.package=javax.servlet, version=[3.0,4)},[org.jboss.spec.javax.xml.rpc.jboss-jaxrpc-api_1.1_spec:1.0.1.Final-redhat-1]]]

                        at org.jboss.osgi.framework.internal.AbstractBundleState.ensureResolved(AbstractBundleState.java:572) [jbosgi-framework-core-1.3.0.Final-redhat-1.jar:1.3.0.Final-redhat-1]

                        at org.jboss.osgi.framework.internal.HostBundleState.startInternal(HostBundleState.java:232) [jbosgi-framework-core-1.3.0.Final-redhat-1.jar:1.3.0.Final-redhat-1]

                        at org.jboss.osgi.framework.internal.AbstractBundleState.start(AbstractBundleState.java:491) [jbosgi-framework-core-1.3.0.Final-redhat-1.jar:1.3.0.Final-redhat-1]

                        at org.jboss.osgi.framework.internal.StartLevelPlugin.increaseStartLevel(StartLevelPlugin.java:250) [jbosgi-framework-core-1.3.0.Final-redhat-1.jar:1.3.0.Final-redhat-1]

                        at org.jboss.osgi.framework.internal.FrameworkActive.start(FrameworkActive.java:131) [jbosgi-framework-core-1.3.0.Final-redhat-1.jar:1.3.0.Final-redhat-1]

                        at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA-redhat-1.jar:1.0.2.GA-redhat-1]

                        at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA-redhat-1.jar:1.0.2.GA-redhat-1]

                        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_23]

                        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_23]

                        at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_23]

                Caused by: org.osgi.service.resolver.ResolutionException: Unable to resolve HostBundleRevision[RanisJars:1.0.0]: missing requirement AbstractPackageRequirement[atts={osgi.wiring.package=javax.xml.rpc},[RanisJars:1.0.0]] [caused by: Unable to resolve AbstractResource[org.jboss.spec.javax.xml.rpc.jboss-jaxrpc-api_1.1_spec:1.0.1.Final-redhat-1]: missi

                ng requirement AbstractPackageRequirement[atts={osgi.wiring.package=javax.servlet, version=[3.0,4)},[org.jboss.spec.javax.xml.rpc.jboss-jaxrpc-api_1.1_spec:1.0.1.Final-redhat-1]]]

                        at org.apache.felix.resolver.impl.Candidates.populateRevision(Candidates.java:291) [jbosgi-resolver-felix-2.1.0.Final-redhat-1.jar:2.1.0.Final-redhat-1]

                        at org.apache.felix.resolver.impl.Candidates.populate(Candidates.java:159) [jbosgi-resolver-felix-2.1.0.Final-redhat-1.jar:2.1.0.Final-redhat-1]

                        at org.apache.felix.resolver.impl.ResolverImpl.resolve(ResolverImpl.java:126) [jbosgi-resolver-felix-2.1.0.Final-redhat-1.jar:2.1.0.Final-redhat-1]

                        at org.apache.felix.resolver.impl.ResolverImpl.resolve(ResolverImpl.java:86) [jbosgi-resolver-felix-2.1.0.Final-redhat-1.jar:2.1.0.Final-redhat-1]

                        at org.jboss.osgi.resolver.felix.StatelessResolver.resolve(StatelessResolver.java:66) [jbosgi-resolver-felix-2.1.0.Final-redhat-1.jar:2.1.0.Final-redhat-1]

                        at org.jboss.osgi.framework.internal.ResolverPlugin.resolve(ResolverPlugin.java:116) [jbosgi-framework-core-1.3.0.Final-redhat-1.jar:1.3.0.Final-redhat-1]

                        at org.jboss.osgi.framework.internal.ResolverPlugin.resolveAndApply(ResolverPlugin.java:120) [jbosgi-framework-core-1.3.0.Final-redhat-1.jar:1.3.0.Final-redhat-1]

                        at org.jboss.osgi.framework.internal.AbstractBundleState.ensureResolved(AbstractBundleState.java:551) [jbosgi-framework-core-1.3.0.Final-redhat-1.jar:1.3.0.Final-redhat-1]

                        ... 9 more

                 

                13:55:16,810 ERROR [RanisJars] (Thread-72) FrameworkEvent ERROR: org.apache.felix.log.LogException: org.osgi.framework.BundleException: Unable to resolve HostBundleRevision[RanisJars:1.0.0]: missing requirement AbstractPackageRequirement[atts={osgi.wiring.package=javax.xml.rpc},[RanisJars:1.0.0]] [caused by: Unable to resolve AbstractResource[org.j

                boss.spec.javax.xml.rpc.jboss-jaxrpc-api_1.1_spec:1.0.1.Final-redhat-1]: missing requirement AbstractPackageRequirement[atts={osgi.wiring.package=javax.servlet, version=[3.0,4)},[org.jboss.spec.javax.xml.rpc.jboss-jaxrpc-api_1.1_spec:1.0.1.Final-redhat-1]]]

                        at org.jboss.osgi.framework.internal.AbstractBundleState.ensureResolved(AbstractBundleState.java:572)

                        at org.jboss.osgi.framework.internal.HostBundleState.startInternal(HostBundleState.java:232)

                        at org.jboss.osgi.framework.internal.AbstractBundleState.start(AbstractBundleState.java:491)

                        at org.jboss.osgi.framework.internal.StartLevelPlugin.increaseStartLevel(StartLevelPlugin.java:250)

                        at org.jboss.osgi.framework.internal.FrameworkActive.start(FrameworkActive.java:131)

                        at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)

                        at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)

                        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_23]

                        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_23]

                        at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_23]

                Caused by: org.apache.felix.log.LogException: org.osgi.service.resolver.ResolutionException: Unable to resolve HostBundleRevision[RanisJars:1.0.0]: missing requirement AbstractPackageRequirement[atts={osgi.wiring.package=javax.xml.rpc},[RanisJars:1.0.0]] [caused by: Unable to resolve AbstractResource[org.jboss.spec.javax.xml.rpc.jboss-jaxrpc-api_1.

                1_spec:1.0.1.Final-redhat-1]: missing requirement AbstractPackageRequirement[atts={osgi.wiring.package=javax.servlet, version=[3.0,4)},[org.jboss.spec.javax.xml.rpc.jboss-jaxrpc-api_1.1_spec:1.0.1.Final-redhat-1]]]

                        at org.apache.felix.resolver.impl.Candidates.populateRevision(Candidates.java:291)

                 

                Are you able to overcome these errors just with these two changes (apart from javax.naming error)?

                 

                Do I need to add  <extension module="javax.api"/> in standlalone.xml?

                 

                 

                Thanks

                Ranis MK

                • 5. Re: Dependency Problems when using Axis 1.4 with OSGi (javax.xml.rpc.Service not found)
                  thomas.diesler

                  I'm doing this on the latest jboss-as/master , which is 7.2.0-Alpha1-SNAPSHOT. This is targeted to come out on 16-Aug-2012

                  In 7.1.2 the steps should be very similar. You may have to add the servlet-3.0 capability.

                  • 6. Re: Dependency Problems when using Axis 1.4 with OSGi (javax.xml.rpc.Service not found)
                    thehashcoder

                    Hi Thomas,

                     

                         Now I am able to run this ( but its a work around).

                     

                         I added the OSG-fied axis jar ( from Spring repository) and tried to run the same. This threw NoCLassDefFound exceptions for other classes. I downloaded all the dependent jars like this ( it was about 13 bundles). Still I was getting exceptions for packages like "javax.xml.namespace". I created a bundle using "rt.jar", and then it started working fine. I know this is a tweak, but is there a better way? Why these classes are not picked up from framework classpath though I'm adding it to the standlalone.xml?

                     

                     

                    Thanks

                    Ranis MK

                    • 7. Re: Dependency Problems when using Axis 1.4 with OSGi (javax.xml.rpc.Service not found)
                      thomas.diesler

                      Have a look at the debug log - it tells you what package capabilities the framework exports.