1 2 Previous Next 18 Replies Latest reply on Sep 4, 2012 11:46 AM by bosschaert

    Deploying CXF-DOSGi to JBoss AS7

    bosschaert

      As a number of people have asked about deploying CXF-DOSGi in AS7 I decided to do a little write-up of how to do this.

       

      In this decription I'm configuring OSGi in AS7 to run the CXF-DOSGi 1.2 multi-bundle distribution. Note that I used the latest master from AS7 for this...

       

      The CXF-DOSGi distribution contains a number of bundelized jars that weren't originally written as OSGi bundles. Therefore the order in which certain bundles are started is significant. The JAXB-api and JAXB-impl combination is such an example where the jaxb-impl bundle needs to be started before the API bundle.

       

      To achieve this in OSGi you can use start levels. Currently start levels can only be specified with deployments that are made as capabilities (through standalone.xml) so what I've done here is modify standalone.xml so that it loads the CXF-DOSGi distribution bundles in the right order.

       

      Here's the osgi subsystem definition that works for me:

      {code:xml}<subsystem xmlns="urn:jboss:domain:osgi:1.1" activation="eager">

          <configuration pid="org.apache.felix.webconsole.internal.servlet.OsgiManager">

              <property name="manager.root" value="jboss-osgi"/>

          </configuration>

          <properties>

              <!-- Specifies the beginning start level of the framework -->

              <property name="org.osgi.framework.startlevel.beginning">85</property>

          </properties>

       

          <capabilities>

              <!-- modules registered with the OSGi layer on startup -->

              <capability name="javax.api"/>

              <!-- <capability name="javax.servlet.api"/> -->

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

              <!-- bundles installed on startup -->

              <capability name="org.apache.aries.util"/>

              <capability name="org.jboss.osgi.webconsole"/>

              <capability name="org.osgi.compendium"/>

              <!-- bundles started in startlevel 1 -->

              <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"/>

       

              <!-- CXF-DOSGI bundles start at 50 -->

              <capability name="org.apache.cxfdosgi.annotation-spec" startlevel="50"/>

              <capability name="org.apache.cxfdosgi.activation-spec" startlevel="51"/>

              <capability name="org.apache.cxfdosgi.javamail-spec" startlevel="52"/>

              <capability name="org.apache.cxfdosgi.ws-metadata-spec" startlevel="53"/>

              <!-- <capability name="org.apache.cxfdosgi.commons-logging" startlevel="54"/> -->

              <capability name="org.apache.cxfdosgi.jdom" startlevel="55"/>

              <capability name="org.apache.cxfdosgi.spring-core" startlevel="56"/>

              <capability name="org.apache.cxfdosgi.spring-beans" startlevel="57"/>

              <capability name="org.apache.cxfdosgi.spring-context" startlevel="58"/>

              <capability name="org.apache.cxfdosgi.spring-aopalliance" startlevel="59"/>

              <capability name="org.apache.cxfdosgi.spring-slf4j-api" startlevel="60"/>

              <capability name="org.apache.cxfdosgi.spring-slf4j-jcl" />

              <capability name="org.apache.cxfdosgi.spring-aop" startlevel="62"/>

              <capability name="org.apache.cxfdosgi.spring-osgi-io" startlevel="63"/>

              <capability name="org.apache.cxfdosgi.spring-osgi-core" startlevel="64"/>

              <capability name="org.apache.cxfdosgi.spring-osgi-extender" startlevel="65"/>

              <capability name="org.apache.cxfdosgi.pax-web-service" startlevel="66"/>

              <capability name="org.apache.cxfdosgi.jaxb-impl" startlevel="67"/>

              <capability name="org.apache.cxfdosgi.wsdl4j" startlevel="68"/>

              <capability name="org.apache.cxfdosgi.xmlsec" startlevel="69"/>

              <capability name="org.apache.cxfdosgi.xmlschema" startlevel="70"/>

              <capability name="org.apache.cxfdosgi.asm" startlevel="71"/>

              <capability name="org.apache.cxfdosgi.xmlresolver" startlevel="72"/>

              <capability name="org.apache.cxfdosgi.neethi" startlevel="73"/>

              <capability name="org.apache.cxfdosgi.woodstox" startlevel="74"/>

              <capability name="org.apache.cxfdosgi.commons-pool" startlevel="75"/>

              <capability name="org.apache.cxfdosgi.saaj-api" startlevel="76"/>

              <capability name="org.apache.cxfdosgi.stax-api" startlevel="77"/>

              <capability name="org.apache.cxfdosgi.jaxb-api" startlevel="78"/>

              <capability name="org.apache.cxfdosgi.jaxws-api" startlevel="79"/>

              <capability name="org.apache.cxfdosgi.jsr311-api" startlevel="80"/>

              <capability name="org.apache.cxfdosgi.cxf-bundle-minimal" startlevel="81"/>

              <capability name="org.apache.cxfdosgi.cxfdosgi-discovery-local" startlevel="82"/>

              <capability name="org.apache.cxfdosgi.cxfdosgi-dsw" startlevel="83"/>

              <capability name="org.apache.cxfdosgi.cxfdosgi-topology-manager" startlevel="84"/>

          </capabilities>

      </subsystem>{code}

       

      Couple of notes:

      • I have set the activation mode to eager. This isn't really needed but setting it as such will activate the OSGi subsystem when you start up AS7. (Otherwise it will activate upon first deployment).
      • I set the org.osgi.framework.startlevel.beginning property to 85, which means that the framework will progress to start level 85 when activated.
      • I have disabled the "javax.servlet.api" capability as the pax-web-service bundle also provides this.
      • I have also removed the commons-logging bundle from the list as OSGi in AS7 provides this functionality already.
      • Lastly note that the spring-slf4j-jcl bundle has no startlevel specified, this is because it is a fragment which can not be started.

      To get all this to work you need to copy the CXF-DOSGi bundles to the bundles subdirectory of the AS7 installation. This is how the capability declarations in the standalone.xml find the actual associated bundles. My directory structure there looks like this:

       

      {code}… some bundles ...

      bundles/org/apache/cxfdosgi/activation-spec/main/geronimo-activation_1.1_spec-1.0.2.jar

      bundles/org/apache/cxfdosgi/annotation-spec/main/geronimo-annotation_1.0_spec-1.1.1.jar

      bundles/org/apache/cxfdosgi/asm/main/org.apache.servicemix.bundles.asm-2.2.3_1.jar

      bundles/org/apache/cxfdosgi/commons-pool/main/org.apache.servicemix.bundles.commons-pool-1.5.4_1.jar

      bundles/org/apache/cxfdosgi/cxf-bundle-minimal/main/cxf-bundle-minimal-2.2.9.jar

      bundles/org/apache/cxfdosgi/cxfdosgi-discovery-local/main/cxf-dosgi-ri-discovery-local-1.2.jar

      bundles/org/apache/cxfdosgi/cxfdosgi-dsw/main/cxf-dosgi-ri-dsw-cxf-1.2.jar

      bundles/org/apache/cxfdosgi/cxfdosgi-topology-manager/main/cxf-dosgi-ri-topology-manager-1.2.jar

      bundles/org/apache/cxfdosgi/javamail-spec/main/geronimo-javamail_1.4_spec-1.2.jar

      bundles/org/apache/cxfdosgi/jaxb-api/main/org.apache.servicemix.specs.jaxb-api-2.1-1.3.0.jar

      bundles/org/apache/cxfdosgi/jaxb-impl/main/org.apache.servicemix.bundles.jaxb-impl-2.1.6_1.jar

      bundles/org/apache/cxfdosgi/jaxws-api/main/org.apache.servicemix.specs.jaxws-api-2.1-1.3.0.jar

      bundles/org/apache/cxfdosgi/jdom/main/com.springsource.org.jdom-1.0.0.jar

      bundles/org/apache/cxfdosgi/jsr311-api/main/org.apache.servicemix.specs.jsr311-api-1.0-1.3.0.jar

      bundles/org/apache/cxfdosgi/neethi/main/org.apache.servicemix.bundles.neethi-2.0.4_1.jar

      bundles/org/apache/cxfdosgi/pax-web-service/main/pax-web-service-0.5.1.jar

      bundles/org/apache/cxfdosgi/saaj-api/main/org.apache.servicemix.specs.saaj-api-1.3-1.3.0.jar

      bundles/org/apache/cxfdosgi/spring-aop/main/spring-aop-2.5.6.jar

      bundles/org/apache/cxfdosgi/spring-aopalliance/main/com.springsource.org.aopalliance-1.0.0.jar

      bundles/org/apache/cxfdosgi/spring-beans/main/spring-beans-2.5.6.jar

      bundles/org/apache/cxfdosgi/spring-context/main/spring-context-2.5.6.jar

      bundles/org/apache/cxfdosgi/spring-core/main/spring-core-2.5.6.jar

      bundles/org/apache/cxfdosgi/spring-osgi-core/main/spring-osgi-core-1.2.0.jar

      bundles/org/apache/cxfdosgi/spring-osgi-extender/main/spring-osgi-extender-1.2.0.jar

      bundles/org/apache/cxfdosgi/spring-osgi-io/main/spring-osgi-io-1.2.0.jar

      bundles/org/apache/cxfdosgi/spring-slf4j-api/main/com.springsource.slf4j.api-1.5.10.jar

      bundles/org/apache/cxfdosgi/spring-slf4j-jcl/main/com.springsource.slf4j.jcl-1.5.10.jar

      bundles/org/apache/cxfdosgi/stax-api/main/org.apache.servicemix.specs.stax-api-1.0-1.3.0.jar

      bundles/org/apache/cxfdosgi/woodstox/main/org.apache.servicemix.bundles.woodstox-3.2.7_1.jar

      bundles/org/apache/cxfdosgi/ws-metadata-spec/main/geronimo-ws-metadata_2.0_spec-1.1.2.jar

      bundles/org/apache/cxfdosgi/wsdl4j/main/org.apache.servicemix.bundles.wsdl4j-1.6.1_1.jar

      bundles/org/apache/cxfdosgi/xmlresolver/main/org.apache.servicemix.bundles.xmlresolver-1.2_1.jar

      bundles/org/apache/cxfdosgi/xmlschema/main/org.apache.servicemix.bundles.xmlschema-1.4.3_1.jar

      bundles/org/apache/cxfdosgi/xmlsec/main/org.apache.servicemix.bundles.xmlsec-1.3.0_1.jar

      … more bundles{code}

       

      When you start up AS7, you'll see that the system starts the OSGi subsystem and moves to start level 85. You'll see something like this at the end of the log:

       

      {code}

      12:17:38,619 INFO  [org.springframework.osgi.context.support.OsgiBundleXmlApplicationContext] (SpringOsgiExtenderThread-2) Publishing application context as OSGi service with properties {org.springframework.context.service.name=cxf-dosgi-ri-dsw-cxf, Bundle-SymbolicName=cxf-dosgi-ri-dsw-cxf, Bundle-Version=1.2.0}

      12:17:38,628 INFO  [org.springframework.osgi.extender.internal.activator.ContextLoaderListener] (SpringOsgiExtenderThread-2) Application context successfully refreshed (OsgiBundleXmlApplicationContext(bundle=cxf-dosgi-ri-dsw-cxf, config=osgibundle:/META-INF/spring/*.xml)){code}

       

      Now, to show that it all works you can now deploy a CXF-DOSGi demo, for instance the greeter demo server side into AS7. There are various ways to do this, you can add them to the capability list in the standalone.xml as above, or use any of the other deployment mechanisms offered by AS7.

      Deploy the interface bundle and the implementation bundle.

      You'll see various messages appear on the console, towards the end you'll see:

       

      {code}*** EndpointDescription: ****

      endpoint.framework.uuid  => cac778b3-d996-4c3d-a6e1-ec3f5c1774ca

      endpoint.id  => http://localhost:9090/greeter

      endpoint.package.version.org.apache.cxf.dosgi.samples.greeter  => 0.0.0

      endpoint.service.id  => 30

      objectClass  => [Ljava.lang.String;@1fd05f97

      org.apache.cxf.ws.address  => http://localhost:9090/greeter

      service.imported  => true

      service.imported.configs  => [Ljava.lang.String;@2933c2d2

      service.intents  => [Ljava.lang.String;@53b7e20{code}

       

      This means that your endpoint is successfully deployed. You can check that by running the client side of the demo in another OSGi Framework instance (e.g another AS7 instance) or by loading up the WSDL from http://localhost:9090/greeter?wsdl

       

      Screen Shot 2011-10-27 at 12.40.16.png    

        • 1. Re: Deploying CXF-DOSGi to JBoss AS7
          spandit2

          David

           

          Thanks for putting these steps together . After following these steps , I am getting an error

           

          22:28:15,456 ERROR [stderr] Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[198,9]

          22:28:15,456 ERROR [stderr] Message: Unexpected element '{urn:jboss:domain:osgi:1.1}subsystem'

           

          I am not sure what I am missing . Any insights ?

           

          I am running 7.0.2 version of Jboss.

           

          Thanks

          Sunil

          • 2. Re: Deploying CXF-DOSGi to JBoss AS7
            bosschaert

            Hi Sunil,

             

            This is because the configuration file format has changed slightly between AS 7.0 and AS 7.1. As I noted at the top of my post, I used the latest AS7 master which is what will be released soon as AS7.1. So you have 2 options:

            • Use the latest master, just get git://github.com/jbossas/jboss-as.git and build it (you'll find the release in build/target). The description above applies to that.
            • Alternatively you can rewrite the configuration to work on AS7.0.2. If you have any issues with that and absolutely need it, let us know.

             

            Best regards,

             

            David

            • 3. Re: Deploying CXF-DOSGi to JBoss AS7
              spandit2

              David ,

               

              Thanks again for the tip . That resolved the issue . I can see the log messages you have mentioned in the original post and also the greeter sample is working .

               

              However I am running into another issue related to CXF . I am trying to deploy rest services using  org.apache.cxf.rs.httpservice.context instead of

              org.apache.cxf.rs.address .

               

              The log suggests that  the endpoints are registered . However when I try to access this service , I get 404 .

               

              This same service works fine when I use CXF DOSGI singlebundle .

               

              I am not sure what I am missing . Could you please shed some light on this ?

               

              Thanks

              Sunil

               

              Here is the log

               

              *** EndpointDescription: ****

              endpoint.framework.uuid  => f79bcc71-0ae8-4bb9-afa4-995184df67a6

              endpoint.id  => http://192.168.0.101:8090/eappRep/rep/repcall

              endpoint.package.version.com.csc.eapp.rep.intf  => 0.0.0

              endpoint.service.id  => 61

              objectClass  => [Ljava.lang.String;@4582c6dc

              org.apache.cxf.rs.address  => http://192.168.0.101:8090/eappRep/rep/repcall

              org.apache.cxf.rs.databinding  => aegis

              org.apache.cxf.rs.httpservice.context  => /eappRep/rep/repcall

              service.imported  => true

              service.imported.configs  => [Ljava.lang.String;@ccdb92b

              service.intents  => [Ljava.lang.String;@1637bc9e

              • 4. Re: Deploying CXF-DOSGi to JBoss AS7
                bosschaert

                Hi Sunil,

                 

                I've never tried that in the context of REST - I'll give it a go in the near future and will let you know how if I find anything helpful...

                 

                Cheers,

                 

                David

                • 5. Re: Deploying CXF-DOSGi to JBoss AS7
                  bosschaert

                  Hi Sunil,

                   

                  It worked for me. First, I got the greeter-rest demo (http://svn.apache.org/repos/asf/cxf/dosgi/trunk/samples/greeter_rest) working as-is: I deployed the cxf-dosgi-ri-samples-greeter-rest-interface and cxf-dosgi-ri-samples-greeter-rest-impl bundles (see also note at the end) and was able to access the OSGi greeter service via it's rest interface; e.g. point a web browser localhost:9090/greeter/greeter/greeting/as7 and you'll get an XML response from the service:

                  Screen Shot 2011-11-01 at 21.45.25.png

                  However, you mentioned you wanted to use the OSGi HTTP Service (instead of Jetty directly) by setting the org.apache.cxf.rs.httpservice.context property instead of org.apache.cxf.rs.address. So I modified the greeter_rest impl bundle Activator as follows:

                  {code:java}public void start(BundleContext bc) throws Exception {

                    Dictionary props = getProperties();

                    registration = bc.registerService(GreeterService.class.getName(),

                      new GreeterServiceImpl(), props);

                  }

                   

                  private Dictionary getProperties() {

                    Dictionary props = new Hashtable();

                    props.put("service.exported.interfaces", "*");

                    props.put("service.exported.configs", "org.apache.cxf.rs");

                    props.put("service.exported.intents", "HTTP");

                    props.put("org.apache.cxf.rs.httpservice.context", "/greeter/gr2");

                    props.put("org.apache.cxf.rs.databinding", "aegis");

                    return props;

                  }{code}

                   

                  So now CXF uses the OSGi HTTP Service to expose the service. When I start the bundle I see:

                  {code}*** EndpointDescription: ****

                  endpoint.framework.uuid  => 7f8fc2dd-15c5-4162-be3e-06b39ce85867

                  endpoint.id  => http://10.0.0.205:8090/greeter/gr2

                  endpoint.package.version.org.apache.cxf.dosgi.samples.greeter.rest  => 0.0.0

                  endpoint.service.id  => 27

                  objectClass  => [Ljava.lang.String;@fda5bfa

                  org.apache.cxf.rs.address  => http://10.0.0.205:8090/greeter/gr2

                  org.apache.cxf.rs.databinding  => aegis

                  org.apache.cxf.rs.httpservice.context  => /greeter/gr2

                  service.imported  => true

                  service.imported.configs  => [Ljava.lang.String;@48cc8237

                  service.intents  => [Ljava.lang.String;@6a790e37{code}

                   

                  Now I can access the same service through the REST API as follows:

                  Screen Shot 2011-11-01 at 21.41.27.png

                  So you might want to try these steps too to try it out.

                   

                  Note: one thing that I noticed is that if I deployed the greeter impl by dropping it in the deployments/ folder an exception occurred (https://issues.jboss.org/browse/AS7-2456).

                  However, deploying my CXF-DOSGi REST bundles using capabilities defined in standalone.xml, just like was done with the other CXF-DOSGi bundles works fine:

                  {code}

                  <properties>

                      <property name="org.osgi.framework.startlevel.beginning">86</property>

                  </properties>

                   

                  <capabilities>

                          <!-- ... capabilities as above ... -->

                          <capability name="org.apache.cxfdosgi.demo.intf" startlevel="85"/>

                          <capability name="org.apache.cxfdosgi.demo.impl" startlevel="86"/>

                  {code}

                   

                  Hope this helps,

                   

                  David

                  • 6. Re: Deploying CXF-DOSGi to JBoss AS7
                    spandit2

                    Hi David ,

                     

                    Thanks for the quick response. I should have mentioned earlier that the Greeter rest sample worked for me . However I have not yet tried it through osgi http service.

                     

                    Dropping the bundle in deployment folder has been working for me . I do get following exception

                     

                    Caused by: java.lang.NoClassDefFoundError: org/apache/ws/security/handler/WSHandler

                        at java.lang.ClassLoader.defineClass1(Native Method) [:1.6.0_26]

                        at java.lang.ClassLoader.defineClassCond(Unknown Source) [:1.6.0_26]

                        at java.lang.ClassLoader.defineClass(Unknown Source) [:1.6.0_26]

                        at java.security.SecureClassLoader.defineClass(Unknown Source) [:1.6.0_26]

                        at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:397) [jboss-modules.jar:1.0.2.GA]

                     

                    Is this what you are getting too ?

                     

                    When I drop greeter in deployment folder , I drop the intereface bundle and once that is deployed I drop Impl bundle. And I am able to access the REST service.

                     

                    I will change it to use the OSGI Http service instead of the Jetty and will update you.

                     

                    Regards

                    Sunil

                    • 7. Re: Deploying CXF-DOSGi to JBoss AS7
                      spandit2

                      Hi David ,

                       

                      I followed the steps as you have performed . But I am still not able to access the Greeter rest service . I get following exception . Notice at the bottom the greeter service is registered successfully . I am not sure what I am missing.

                      <code>

                      22:15:29,519 WARN  [org.jboss.modules] (pool-9-thread-2) Failed to define class org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor in Module "deployment.org.apache.cxf.bundle-minimal:2.2.9" from Service Module Loader: java.lang.LinkageError: Failed to link org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor (Module "deployment.org.apache.cxf.bundle-minimal:2.2.9" from Service Module Loader)

                          at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:401) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:261) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:76) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.FilteredLocalLoader.loadClassLocal(FilteredLocalLoader.java:46) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.Module.loadModuleClass(Module.java:590) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:183) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103) [jboss-modules.jar:1.0.2.GA]

                          at java.lang.ClassLoader.defineClass1(Native Method) [:1.6.0_26]

                          at java.lang.ClassLoader.defineClassCond(Unknown Source) [:1.6.0_26]

                          at java.lang.ClassLoader.defineClass(Unknown Source) [:1.6.0_26]

                          at java.security.SecureClassLoader.defineClass(Unknown Source) [:1.6.0_26]

                          at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:397) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:261) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:76) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.FilteredLocalLoader.loadClassLocal(FilteredLocalLoader.java:46) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.Module.loadModuleClass(Module.java:590) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:183) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103) [jboss-modules.jar:1.0.2.GA]

                          at java.lang.ClassLoader.defineClass1(Native Method) [:1.6.0_26]

                          at java.lang.ClassLoader.defineClassCond(Unknown Source) [:1.6.0_26]

                          at java.lang.ClassLoader.defineClass(Unknown Source) [:1.6.0_26]

                          at java.security.SecureClassLoader.defineClass(Unknown Source) [:1.6.0_26]

                          at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:397) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:261) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:76) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.FilteredLocalLoader.loadClassLocal(FilteredLocalLoader.java:46) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.Module.loadModuleClass(Module.java:590) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:183) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103) [jboss-modules.jar:1.0.2.GA]

                          at org.apache.cxf.ws.security.policy.interceptors.WSSecurityInterceptorProvider.<init>(WSSecurityInterceptorProvider.java:49) [WSSecurityInterceptorProvider.class:]

                          at org.apache.cxf.ws.security.policy.WSSecurityPolicyLoader.registerProviders(WSSecurityPolicyLoader.java:163) [WSSecurityPolicyLoader.class:]

                          at org.apache.cxf.ws.security.policy.WSSecurityPolicyLoader.register(WSSecurityPolicyLoader.java:84) [WSSecurityPolicyLoader.class:]

                          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_26]

                          at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [:1.6.0_26]

                          at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [:1.6.0_26]

                          at java.lang.reflect.Method.invoke(Unknown Source) [:1.6.0_26]

                          at org.apache.cxf.common.injection.ResourceInjector.invokePostConstruct(ResourceInjector.java:303) [ResourceInjector.class:]

                          at org.apache.cxf.common.injection.ResourceInjector.construct(ResourceInjector.java:87) [ResourceInjector.class:]

                          at org.apache.cxf.bus.spring.Jsr250BeanPostProcessor.postProcessAfterInitialization(Jsr250BeanPostProcessor.java:71) [Jsr250BeanPostProcessor.class:]

                          at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:361) [AbstractAutowireCapableBeanFactory.class:]

                          at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1344) [AbstractAutowireCapableBeanFactory.class:]

                          at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473) [AbstractAutowireCapableBeanFactory.class:]

                          at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) [AbstractAutowireCapableBeanFactory$1.class:]

                          at java.security.AccessController.doPrivileged(Native Method) [:1.6.0_26]

                          at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) [AbstractAutowireCapableBeanFactory.class:]

                          at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) [AbstractBeanFactory$1.class:]

                          at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) [DefaultSingletonBeanRegistry.class:]

                          at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) [AbstractBeanFactory.class:]

                          at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) [AbstractBeanFactory.class:]

                          at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) [AbstractBeanFactory.class:]

                          at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429) [DefaultListableBeanFactory.class:]

                          at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728) [AbstractApplicationContext.class:]

                          at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380) [AbstractApplicationContext.class:]

                          at org.apache.cxf.bus.spring.BusApplicationContext.<init>(BusApplicationContext.java:91) [BusApplicationContext.class:]

                          at org.apache.cxf.bus.spring.SpringBusFactory.createApplicationContext(SpringBusFactory.java:102) [SpringBusFactory.class:]

                          at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:93) [SpringBusFactory.class:]

                          at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:86) [SpringBusFactory.class:]

                          at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:64) [SpringBusFactory.class:]

                          at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:53) [SpringBusFactory.class:]

                          at org.apache.cxf.transport.servlet.CXFNonSpringServlet.loadBusNoConfig(CXFNonSpringServlet.java:45) [CXFNonSpringServlet.class:]

                          at org.apache.cxf.transport.servlet.CXFNonSpringServlet.loadBus(CXFNonSpringServlet.java:38) [CXFNonSpringServlet.class:]

                          at org.apache.cxf.transport.servlet.AbstractCXFServlet.init(AbstractCXFServlet.java:78) [AbstractCXFServlet.class:]

                          at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433) [ServletHolder.class:]

                          at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256) [ServletHolder.class:]

                          at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) [AbstractLifeCycle.class:]

                          at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:616) [ServletHandler.class:]

                          at org.mortbay.jetty.servlet.ServletHandler.updateMappings(ServletHandler.java:984) [ServletHandler.class:]

                          at org.mortbay.jetty.servlet.ServletHandler.setServletMappings(ServletHandler.java:1041) [ServletHandler.class:]

                          at org.mortbay.jetty.servlet.ServletHandler.addServletMapping(ServletHandler.java:740) [ServletHandler.class:]

                          at org.ops4j.pax.web.service.internal.JettyServerImpl$1.call(JettyServerImpl.java:129) [JettyServerImpl$1.class:]

                          at org.ops4j.pax.web.service.internal.JettyServerImpl$1.call(JettyServerImpl.java:126) [JettyServerImpl$1.class:]

                          at org.ops4j.pax.swissbox.core.ContextClassLoaderUtils.doWithClassLoader(ContextClassLoaderUtils.java:60) [ContextClassLoaderUtils.class:]

                          at org.ops4j.pax.web.service.internal.JettyServerImpl.addServlet(JettyServerImpl.java:121) [JettyServerImpl.class:]

                          at org.ops4j.pax.web.service.internal.ServerControllerImpl$Started.addServlet(ServerControllerImpl.java:214) [ServerControllerImpl$Started.class:]

                          at org.ops4j.pax.web.service.internal.ServerControllerImpl.addServlet(ServerControllerImpl.java:90) [ServerControllerImpl.class:]

                          at org.ops4j.pax.web.service.internal.HttpServiceStarted.registerServlet(HttpServiceStarted.java:144) [HttpServiceStarted.class:]

                          at org.ops4j.pax.web.service.internal.HttpServiceProxy.registerServlet(HttpServiceProxy.java:53) [HttpServiceProxy.class:]

                          at org.apache.cxf.dosgi.dsw.handlers.JaxRSHttpServiceConfigurationTypeHandler.createServer(JaxRSHttpServiceConfigurationTypeHandler.java:69) [JaxRSHttpServiceConfigurationTypeHandler.class:]

                          at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminCore.exportService(RemoteServiceAdminCore.java:244) [RemoteServiceAdminCore.class:]

                          at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminInstance$1.run(RemoteServiceAdminInstance.java:78) [RemoteServiceAdminInstance$1.class:]

                          at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminInstance$1.run(RemoteServiceAdminInstance.java:71) [RemoteServiceAdminInstance$1.class:]

                          at java.security.AccessController.doPrivileged(Native Method) [:1.6.0_26]

                          at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminInstance.exportService(RemoteServiceAdminInstance.java:71) [RemoteServiceAdminInstance.class:]

                          at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminInstance.exportService(RemoteServiceAdminInstance.java:40) [RemoteServiceAdminInstance.class:]

                          at org.apache.cxf.dosgi.topologymanager.TopologyManager$2.run(TopologyManager.java:254) [TopologyManager$2.class:]

                          at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [:1.6.0_26]

                          at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [:1.6.0_26]

                          at java.lang.Thread.run(Unknown Source) [:1.6.0_26]

                      Caused by: java.lang.NoClassDefFoundError: org/apache/ws/security/handler/WSHandler

                          at java.lang.ClassLoader.defineClass1(Native Method) [:1.6.0_26]

                          at java.lang.ClassLoader.defineClassCond(Unknown Source) [:1.6.0_26]

                          at java.lang.ClassLoader.defineClass(Unknown Source) [:1.6.0_26]

                          at java.security.SecureClassLoader.defineClass(Unknown Source) [:1.6.0_26]

                          at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:397) [jboss-modules.jar:1.0.2.GA]

                          ... 98 more

                      Caused by: java.lang.ClassNotFoundException: org.apache.ws.security.handler.WSHandler from [Module "deployment.org.apache.cxf.bundle-minimal:2.2.9" from Service Module Loader]

                          at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:191) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103) [jboss-modules.jar:1.0.2.GA]

                          ... 103 more

                       

                      22:15:29,523 WARN  [org.jboss.modules] (pool-9-thread-2) Failed to define class org.apache.cxf.ws.security.wss4j.PolicyBasedWSS4JInInterceptor in Module "deployment.org.apache.cxf.bundle-minimal:2.2.9" from Service Module Loader: java.lang.LinkageError: Failed to link org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor (Module "deployment.org.apache.cxf.bundle-minimal:2.2.9" from Service Module Loader)

                          at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:401) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:261) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:76) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.FilteredLocalLoader.loadClassLocal(FilteredLocalLoader.java:46) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.Module.loadModuleClass(Module.java:590) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:183) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103) [jboss-modules.jar:1.0.2.GA]

                          at java.lang.ClassLoader.defineClass1(Native Method) [:1.6.0_26]

                          at java.lang.ClassLoader.defineClassCond(Unknown Source) [:1.6.0_26]

                          at java.lang.ClassLoader.defineClass(Unknown Source) [:1.6.0_26]

                          at java.security.SecureClassLoader.defineClass(Unknown Source) [:1.6.0_26]

                          at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:397) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:261) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:76) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.FilteredLocalLoader.loadClassLocal(FilteredLocalLoader.java:46) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.Module.loadModuleClass(Module.java:590) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:183) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103) [jboss-modules.jar:1.0.2.GA]

                          at java.lang.ClassLoader.defineClass1(Native Method) [:1.6.0_26]

                          at java.lang.ClassLoader.defineClassCond(Unknown Source) [:1.6.0_26]

                          at java.lang.ClassLoader.defineClass(Unknown Source) [:1.6.0_26]

                          at java.security.SecureClassLoader.defineClass(Unknown Source) [:1.6.0_26]

                          at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:397) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:261) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:76) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.FilteredLocalLoader.loadClassLocal(FilteredLocalLoader.java:46) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.Module.loadModuleClass(Module.java:590) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:183) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103) [jboss-modules.jar:1.0.2.GA]

                          at org.apache.cxf.ws.security.policy.interceptors.WSSecurityInterceptorProvider.<init>(WSSecurityInterceptorProvider.java:49) [WSSecurityInterceptorProvider.class:]

                          at org.apache.cxf.ws.security.policy.WSSecurityPolicyLoader.registerProviders(WSSecurityPolicyLoader.java:163) [WSSecurityPolicyLoader.class:]

                          at org.apache.cxf.ws.security.policy.WSSecurityPolicyLoader.register(WSSecurityPolicyLoader.java:84) [WSSecurityPolicyLoader.class:]

                          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [:1.6.0_26]

                          at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [:1.6.0_26]

                          at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [:1.6.0_26]

                          at java.lang.reflect.Method.invoke(Unknown Source) [:1.6.0_26]

                          at org.apache.cxf.common.injection.ResourceInjector.invokePostConstruct(ResourceInjector.java:303) [ResourceInjector.class:]

                          at org.apache.cxf.common.injection.ResourceInjector.construct(ResourceInjector.java:87) [ResourceInjector.class:]

                          at org.apache.cxf.bus.spring.Jsr250BeanPostProcessor.postProcessAfterInitialization(Jsr250BeanPostProcessor.java:71) [Jsr250BeanPostProcessor.class:]

                          at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:361) [AbstractAutowireCapableBeanFactory.class:]

                          at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1344) [AbstractAutowireCapableBeanFactory.class:]

                          at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473) [AbstractAutowireCapableBeanFactory.class:]

                          at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) [AbstractAutowireCapableBeanFactory$1.class:]

                          at java.security.AccessController.doPrivileged(Native Method) [:1.6.0_26]

                          at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) [AbstractAutowireCapableBeanFactory.class:]

                          at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) [AbstractBeanFactory$1.class:]

                          at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) [DefaultSingletonBeanRegistry.class:]

                          at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) [AbstractBeanFactory.class:]

                          at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) [AbstractBeanFactory.class:]

                          at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) [AbstractBeanFactory.class:]

                          at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429) [DefaultListableBeanFactory.class:]

                          at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728) [AbstractApplicationContext.class:]

                          at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380) [AbstractApplicationContext.class:]

                          at org.apache.cxf.bus.spring.BusApplicationContext.<init>(BusApplicationContext.java:91) [BusApplicationContext.class:]

                          at org.apache.cxf.bus.spring.SpringBusFactory.createApplicationContext(SpringBusFactory.java:102) [SpringBusFactory.class:]

                          at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:93) [SpringBusFactory.class:]

                          at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:86) [SpringBusFactory.class:]

                          at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:64) [SpringBusFactory.class:]

                          at org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:53) [SpringBusFactory.class:]

                          at org.apache.cxf.transport.servlet.CXFNonSpringServlet.loadBusNoConfig(CXFNonSpringServlet.java:45) [CXFNonSpringServlet.class:]

                          at org.apache.cxf.transport.servlet.CXFNonSpringServlet.loadBus(CXFNonSpringServlet.java:38) [CXFNonSpringServlet.class:]

                          at org.apache.cxf.transport.servlet.AbstractCXFServlet.init(AbstractCXFServlet.java:78) [AbstractCXFServlet.class:]

                          at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433) [ServletHolder.class:]

                          at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256) [ServletHolder.class:]

                          at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) [AbstractLifeCycle.class:]

                          at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:616) [ServletHandler.class:]

                          at org.mortbay.jetty.servlet.ServletHandler.updateMappings(ServletHandler.java:984) [ServletHandler.class:]

                          at org.mortbay.jetty.servlet.ServletHandler.setServletMappings(ServletHandler.java:1041) [ServletHandler.class:]

                          at org.mortbay.jetty.servlet.ServletHandler.addServletMapping(ServletHandler.java:740) [ServletHandler.class:]

                          at org.ops4j.pax.web.service.internal.JettyServerImpl$1.call(JettyServerImpl.java:129) [JettyServerImpl$1.class:]

                          at org.ops4j.pax.web.service.internal.JettyServerImpl$1.call(JettyServerImpl.java:126) [JettyServerImpl$1.class:]

                          at org.ops4j.pax.swissbox.core.ContextClassLoaderUtils.doWithClassLoader(ContextClassLoaderUtils.java:60) [ContextClassLoaderUtils.class:]

                          at org.ops4j.pax.web.service.internal.JettyServerImpl.addServlet(JettyServerImpl.java:121) [JettyServerImpl.class:]

                          at org.ops4j.pax.web.service.internal.ServerControllerImpl$Started.addServlet(ServerControllerImpl.java:214) [ServerControllerImpl$Started.class:]

                          at org.ops4j.pax.web.service.internal.ServerControllerImpl.addServlet(ServerControllerImpl.java:90) [ServerControllerImpl.class:]

                          at org.ops4j.pax.web.service.internal.HttpServiceStarted.registerServlet(HttpServiceStarted.java:144) [HttpServiceStarted.class:]

                          at org.ops4j.pax.web.service.internal.HttpServiceProxy.registerServlet(HttpServiceProxy.java:53) [HttpServiceProxy.class:]

                          at org.apache.cxf.dosgi.dsw.handlers.JaxRSHttpServiceConfigurationTypeHandler.createServer(JaxRSHttpServiceConfigurationTypeHandler.java:69) [JaxRSHttpServiceConfigurationTypeHandler.class:]

                          at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminCore.exportService(RemoteServiceAdminCore.java:244) [RemoteServiceAdminCore.class:]

                          at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminInstance$1.run(RemoteServiceAdminInstance.java:78) [RemoteServiceAdminInstance$1.class:]

                          at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminInstance$1.run(RemoteServiceAdminInstance.java:71) [RemoteServiceAdminInstance$1.class:]

                          at java.security.AccessController.doPrivileged(Native Method) [:1.6.0_26]

                          at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminInstance.exportService(RemoteServiceAdminInstance.java:71) [RemoteServiceAdminInstance.class:]

                          at org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminInstance.exportService(RemoteServiceAdminInstance.java:40) [RemoteServiceAdminInstance.class:]

                          at org.apache.cxf.dosgi.topologymanager.TopologyManager$2.run(TopologyManager.java:254) [TopologyManager$2.class:]

                          at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [:1.6.0_26]

                          at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [:1.6.0_26]

                          at java.lang.Thread.run(Unknown Source) [:1.6.0_26]

                      Caused by: java.lang.NoClassDefFoundError: org/apache/ws/security/handler/WSHandler

                          at java.lang.ClassLoader.defineClass1(Native Method) [:1.6.0_26]

                          at java.lang.ClassLoader.defineClassCond(Unknown Source) [:1.6.0_26]

                          at java.lang.ClassLoader.defineClass(Unknown Source) [:1.6.0_26]

                          at java.security.SecureClassLoader.defineClass(Unknown Source) [:1.6.0_26]

                          at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:397) [jboss-modules.jar:1.0.2.GA]

                          ... 98 more

                      Caused by: java.lang.ClassNotFoundException: org.apache.ws.security.handler.WSHandler from [Module "deployment.org.apache.cxf.bundle-minimal:2.2.9" from Service Module Loader]

                          at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:191) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310) [jboss-modules.jar:1.0.2.GA]

                          at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103) [jboss-modules.jar:1.0.2.GA]

                          ... 103 more

                       

                      22:15:29,564 INFO  [org.apache.cxf.transport.servlet.AbstractCXFServlet] (pool-9-thread-2) Replaced the http destination factory with servlet transport factory

                      22:15:29,567 INFO  [org.apache.cxf.dosgi.dsw.handlers.JaxRSHttpServiceConfigurationTypeHandler] (pool-9-thread-2) Successfully registered CXF DOSGi servlet at /greeter/gr2

                      22:15:29,675 INFO  [org.apache.cxf.endpoint.ServerImpl] (pool-9-thread-2) Setting the server's publish address to be /

                      22:15:29,735 INFO  [org.apache.cxf.dosgi.dsw.service.RemoteServiceAdminCore] (pool-9-thread-2) created server for interface org.apache.cxf.dosgi.samples.greeter.rest.GreeterService

                      22:15:29,736 INFO  [org.apache.cxf.dosgi.topologymanager.ListenerHookImpl] (pool-9-thread-2) *** Filter: (service.id=54)

                      22:15:29,737 INFO  [org.apache.cxf.dosgi.topologymanager.ListenerHookImpl] (pool-9-thread-2) ListenerHookImpl: skipping import request for excluded classs [null]

                      22:15:29,741 INFO  [org.apache.cxf.dosgi.topologymanager.RemoteServiceAdminListenerImpl] (pool-9-thread-2) Unhandled event type received: 2

                      22:15:29,745 INFO  [org.apache.cxf.dosgi.topologymanager.TopologyManager] (pool-9-thread-2) TopologyManager: export sucessful Endpoints:[Endpoint Desctiption for ServiceReference ServiceState{service.exported.configs=org.apache.cxf.rs, org.apache.cxf.rs.databinding=aegis, service.exported.interfaces=*, service.id=54, service.exported.intents=HTTP, objectClass=[org.apache.cxf.dosgi.samples.greeter.rest.GreeterService], org.apache.cxf.rs.httpservice.context=/greeter/gr2}

                      *** EndpointDescription: ****

                      endpoint.framework.uuid  => c61c0d4f-d386-45fc-96d5-c9e5612b8c39

                      endpoint.id  => http://192.168.0.101:8090/greeter/gr2

                      endpoint.package.version.org.apache.cxf.dosgi.samples.greeter.rest  => 0.0.0

                      endpoint.service.id  => 54

                      objectClass  => [Ljava.lang.String;@27c453c8

                      org.apache.cxf.rs.address  => http://192.168.0.101:8090/greeter/gr2

                      org.apache.cxf.rs.databinding  => aegis

                      org.apache.cxf.rs.httpservice.context  => /greeter/gr2

                      service.imported  => true

                      service.imported.configs  => [Ljava.lang.String;@4a5883dd

                      service.intents  => [Ljava.lang.String;@7939484c

                       

                      *** Exception: null ****

                      *** isClosed : false ****

                      </code>

                      • 8. Re: Deploying CXF-DOSGi to JBoss AS7
                        spandit2

                        David

                         

                        I noticed the exception I am getting is an issue

                         

                        And as you mentioned there it is harmless. So I am not sure why I am getting 404 for greeter rest service .

                         

                        Is it working for you because you are running master version of the server ? Is there any defect in 7.0.2 that was fixed ?

                         

                        Also could you please share your standalone.xml ?

                         

                        Thanks

                        Sunil

                        • 9. Re: Deploying CXF-DOSGi to JBoss AS7
                          bosschaert

                          Hi Sunil,

                          Sunil Pandit wrote:

                           

                          I noticed the exception I am getting is an issue

                           

                          And as you mentioned there it is harmless. So I am not sure why I am getting 404 for greeter rest service .

                           

                           

                          This exception that I'm getting that I think is 'harmless', at least for this use-case is this one:

                          {code}22:15:29,519 WARN  [org.jboss.modules] (pool-9-thread-2) Failed to define class

                          org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor in Module "deployment.org.apache.cxf.bundle-minimal:2.2.9" from

                          Service Module Loader: java.lang.LinkageError: Failed to link org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor{code}

                          I think this is an issue with the way the CXF-DOSGi bundles are packaged. There is an optional import to one of the security packages and I believe the CXF system at that point attempts to initialize WS security, but it can continue without security if that doesn't succeed. If you need security for CXF enabled it might be best to ask that on the cxf-user mailing list.

                           

                          The exception from AS7-2456 is not harmless, as it will cause the deployment to fail. However it can be avoided by deploying your bundles as capabilities as I've described above (the ones with startlevel 85 and 86).

                           

                          Also could you please share your standalone.xml ?

                          For your convenience I've created a zip of all the CXF-DOSGi bundles, plus the greeter-rest demo interface and impl bundles: cxfdosgi_bundles.zip. You can drop that in your as7/bundles/org/apache directory.

                          I've also attached the standalone.xml file that I've used. With this I have no problem accessing the OSGi service exposed over REST via the URL reported in the EndpointDescription, in my case that is http://10.22.129.128:8090/greeter/gr2/greeter/greeting/as7-user

                           

                          So I would suggest that you try to get the greeter demo working as well, as described. It should work for you just as it works for me. Then you can apply this setup to your own service and things should work likewise.

                           

                          BTW, Again, I have only tried this with the latest AS7.1 master. AS7.1 will be released quite soon so it might be best to simply focus on that. It should be possible to get things to work with 7.0.2 but the configuration will be different.

                          • 10. Re: Deploying CXF-DOSGi to JBoss AS7
                            spandit2

                            Hi David ,

                             

                            I could get this configuration running on 7.0.2 . However i had to add following properties to the above subsystem

                             

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

                                                org.apache.commons.logging;version=1.1.1,

                                        org.apache.log4j;version=1.2,

                                              org.jboss.as.osgi.service;version=7.0,

                                              org.jboss.osgi.deployment.interceptor;version=1.0,

                                              org.jboss.osgi.spi.capability;version=1.0,

                                              org.jboss.osgi.spi.util;version=1.0,

                                              org.jboss.osgi.testing;version=1.0,

                                              org.jboss.osgi.vfs;version=1.0,

                                              org.slf4j;version=1.5.10,

                                              javax.xml.bind.JAXBContext,

                                              javax.xml.bind.JAXBException,

                                              javax.activation,

                                            </property>

                            <property name="org.jboss.osgi.system.modules">org.apache.commons.logging,

                                                   org.apache.log4j,

                                                   org.jboss.as.osgi,

                                                   org.slf4j,

                            </property>

                             

                            I still get an exception for wshandler class not found exception . It is consistent on both 7.0.2 as well as 7.1 .

                             

                            Thanks

                            Sunil

                            • 11. Re: Deploying CXF-DOSGi to JBoss AS7
                              bosschaert

                              Hi Sunil,

                              Sunil Pandit wrote:

                               

                              I still get an exception for wshandler class not found exception . It is consistent on both 7.0.2 as well as 7.1 .

                               

                              Is this exception causing an issue for you or is it harmless?

                              Also I'd like to understand whether you get this exception only with your component or also with the demo as I posted it.

                               

                              Thanks,

                               

                              David

                              • 12. Re: Deploying CXF-DOSGi to JBoss AS7
                                spandit2

                                Sorry , took some time to respond to you questions .

                                 

                                This exception is harmless and it does occur everytime the bundle registers service . I see these exeptions even for the greeter sample .

                                 

                                Sunil

                                • 13. Re: Deploying CXF-DOSGi to JBoss AS7
                                  bosschaert

                                  Yeah, it's an issue for the CXF-DOSGi project.

                                   

                                  So can I assume that it's working for you now?

                                  • 14. Re: Deploying CXF-DOSGi to JBoss AS7
                                    spandit2

                                    David

                                     

                                    Have you noticed that when we add CXF single bundle or multi bundler then it breaks the felix web console ? I think it causes some conflicts to the underlying OSGI http service.

                                     

                                    Sunil

                                    1 2 Previous Next