2 Replies Latest reply on Sep 22, 2011 8:15 PM by doudl

    Installing JBossWS CXF 3.4.0 with JBoss AS 5.1

    doudl

      Hello,

       

      I've installed JBossWS CXF 3.4.0 with JBoss AS 5.1.  Specifically, I've installed it using "ant -Dspring=true deploy-jboss510" and generally following the instructions from the following web page.

       

      http://community.jboss.org/wiki/JBossWS-Installation

       

      The problem I have is that I needed to manually install the "org.springframework.web-3.0.5.RELEASE.jar" in addition to the above installation for my web services to work.  I put this jar file in my .../jboss-5.1.0.GA/server/default/lib directory.  I downloaded the 3.0.5 version of Spring Framework from:

      http://www.springsource.com/download/community

       

      I didn't develop the service.  The developers worked in a Tomcat'like enviroment and had never run their service outside their IDE.  I had to rework the web.xml to run their web service (they implemented it as a pojo).  Previously the web.xml started the Spring servlet that ran their pojo.  The reworked web.xml just has their pojo listed as servlet, and the path for the servlet defined as "/*".

       

      I also had to rework their abc-beans.xml to jbossws-cxf.xml, and add the "InvokerJSE" as described here:

      http://community.jboss.org/wiki/JBossWS-StackCXFUserGuide#Server_Side_Integration_Customization

       

      Just to repeat, it works, but why did I have to add the "org.springframework.web-3.0.5.RELEASE.jar" to the server/default/lib?  I'm guessing something went wrong with the install of JBossWS CXF 3.4.0.

       

      Here is the stack trace that happens if I don't manually add the "org.springframework.web-3.0.5.RELEASE.jar" after the JBossWS CXF 3.4.0 install:

       

      Caused by: java.lang.NoClassDefFoundError: org/springframework/web/context/ServletContextAware

              at java.lang.ClassLoader.defineClass1(Native Method)

              at java.lang.ClassLoader.defineClass(ClassLoader.java:634)

              at org.jboss.classloader.spi.base.BaseClassLoader.access$200(BaseClassLoader.java:63)

              at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:572)

              at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:532)

              at java.security.AccessController.doPrivileged(Native Method)

              at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:530)

              at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:507)

              at org.jboss.classloader.spi.base.BaseDelegateLoader.loadClass(BaseDelegateLoader.java:134)

              at org.jboss.classloader.spi.filter.FilteredDelegateLoader.loadClass(FilteredDelegateLoader.java:131)

              at org.jboss.classloader.spi.base.ClassLoadingTask$ThreadTask.run(ClassLoadingTask.java:452)

              at org.jboss.classloader.spi.base.ClassLoaderManager.nextTask(ClassLoaderManager.java:251)

              at org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:150)

              at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:265)

              at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1119)

              at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:798)

              at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:441)

              at java.lang.ClassLoader.loadClass(ClassLoader.java:266)

              at org.springframework.util.ClassUtils.forName(ClassUtils.java:257)

              at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:408)

              at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1256)

              at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1227)

              ... 41 more

      Caused by: java.lang.ClassNotFoundException: org.springframework.web.context.ServletContextAware

              at java.net.URLClassLoader$1.run(URLClassLoader.java:217)

              at java.security.AccessController.doPrivileged(Native Method)

              at java.net.URLClassLoader.findClass(URLClassLoader.java:205)

              at java.lang.ClassLoader.loadClass(ClassLoader.java:321)

              at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)

              at java.lang.ClassLoader.loadClass(ClassLoader.java:266)

              at java.lang.Class.forName0(Native Method)

              at java.lang.Class.forName(Class.java:264)

              at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:292)

              at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1119)

              at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:798)

              at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:441)

              at java.lang.ClassLoader.loadClass(ClassLoader.java:266)

              ... 63 more

       

      Thanks in advance,

      Leon

        • 1. Re: Installing JBossWS CXF 3.4.0 with JBoss AS 5.1
          asoldano

          The reason the spring-web jar is not installed is that it's not strictly required by the jbossws-cxf integration as far as our testsuite verified. You can create a jira for having that included too, providing an example of a valid Spring descriptor (basically jbossws-cxf.xml) that makes it required.

          • 2. Re: Installing JBossWS CXF 3.4.0 with JBoss AS 5.1
            doudl

            Thanks for the reply!  Understable that if its not srtictly required then you shouldn't deploy it.  I'll have to check the jbossws-cxf.xml and see what the developers are using that is above and beyond a standard deployment. Its probably necessary whatever they are doing, but it sounds like adding the jar file manually was the correct approach on my part.

             

            Thanks again,

            Leon