13 Replies Latest reply: Feb 24, 2012 8:03 AM by Marc van Andel RSS

ClassCastException when initializing CXFServlet

Paul Huemer Newbie

I am currently migrating existing web projects from JBoss AS 4.0.3 to 4.3.2.
Our web projects utilize Spring 2.5.6.SEC01 and offer WebServices using Apache CXF 2.2.3.

Policies make us to use JBoss WS CXF Stack version 3.1.0.
Deployment on JBoss 4.3.2 gives me an ClassCastExcpetion when the CXF Servlet is initialized:

12:10:57,796 ERROR [[/fixwerte]] StandardWrapper.Throwable
java.lang.ClassCastException:
org.springframework.web.context.support.XmlWebApplicationContext cannot be
cast to java.lang.Exception
 at org.apache.cxf.transport.servlet.CXFServlet.loadSpringBus(
CXFServlet.java:96.)
 at org.apache.cxf.transport.servlet.CXFServlet.loadBus(
CXFServlet.java:70.)
 at org.apache.cxf.transport.servlet.AbstractCXFServlet.init(
AbstractCXFServlet.java:79)
 at org.apache.catalina.core.StandardWrapper.loadServlet(
StandardWrapper.java:1161)
 at org.apache.catalina.core.StandardWrapper.load(
StandardWrapper.java:981)
 at org.apache.catalina.core.StandardContext.loadOnStartup(
StandardContext.java:4071)
 at org.apache.catalina.core.StandardContext.start(
StandardContext.java:4375)
 at org.apache.catalina.core.ContainerBase.addChildInternal(
ContainerBase.java:790)
 at org.apache.catalina.core.ContainerBase.addChild(
ContainerBase.java:770)
 at org.apache.catalina.core.StandardHost.addChild(
StandardHost.java:553)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(
BaseModelMBean.java:296)
 at org.jboss.mx.server.RawDynamicInvoker.invoke(.
RawDynamicInvoker.java:164)
 at org.jboss.mx.server.MBeanServerImpl.invoke(
MBeanServerImpl.java:659)
 at org.apache.catalina.core.StandardContext.init(
StandardContext.java:5312)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(
BaseModelMBean.java:296)
 at org.jboss.mx.server.RawDynamicInvoker.invoke(.
RawDynamicInvoker.java:164)
 at org.jboss.mx.server.MBeanServerImpl.invoke(
MBeanServerImpl.java:659)
 at org.jboss.web.tomcat.service.TomcatDeployer.performDeployInternal(
TomcatDeployer.java:301)
 at org.jboss.web.tomcat.service.TomcatDeployer.performDeploy(
TomcatDeployer.java:104)
 at org.jboss.web.AbstractWebDeployer.start(
AbstractWebDeployer.java:375)
 at org.jboss.web.WebModule.startModule(WebModule.java:83.)
 at org.jboss.web.WebModule.startService(WebModule.java:61.)
 at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(
ServiceMBeanSupport.java:289)
 at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(
ServiceMBeanSupport.java:245)
 at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(
ReflectedDispatcher.java:155.)
 at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
 at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
 at org.jboss.mx.server.AbstractMBeanInvoker.invoke(
AbstractMBeanInvoker.java:264)
 at org.jboss.mx.server.MBeanServerImpl.invoke(
MBeanServerImpl.java:659)
 at org.jboss.system.ServiceController$ServiceProxy.invoke(
ServiceController.java:978)
 at $Proxy0.start(Unknown Source)
 at org.jboss.system.ServiceController.start(
ServiceController.java:417)
 at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(
ReflectedDispatcher.java:155.)
 at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
 at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
 at org.jboss.mx.server.AbstractMBeanInvoker.invoke(
AbstractMBeanInvoker.java:264)
 at org.jboss.mx.server.MBeanServerImpl.invoke(
MBeanServerImpl.java:659)
 at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
 at $Proxy44.start(Unknown Source)
 at org.jboss.web.AbstractWebContainer.start(
AbstractWebContainer.java:466)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(
ReflectedDispatcher.java:155.)
 at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
 at org.jboss.mx.interceptor.AbstractInterceptor.invoke(
AbstractInterceptor.java:133.)
 at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
 at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(
ModelMBeanOperationInterceptor.java:142)
 at org.jboss.mx.interceptor.DynamicInterceptor.invoke(
DynamicInterceptor.java:97)
 at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(
InterceptorServiceMBeanSupport.java:238)
 at org.jboss.wsf.container.jboss42.DeployerInterceptor.start(
DeployerInterceptor.java:85.)
 at org.jboss.deployment.SubDeployerInterceptorSupport
$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188)
 at org.jboss.deployment.SubDeployerInterceptor.invoke(
SubDeployerInterceptor.java:95)
 at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
 at org.jboss.mx.server.AbstractMBeanInvoker.invoke(
AbstractMBeanInvoker.java:264)
 at org.jboss.mx.server.MBeanServerImpl.invoke(
MBeanServerImpl.java:659)
 at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
 at $Proxy45.start(Unknown Source)
 at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
 at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
 at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
 at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(
ReflectedDispatcher.java:155.)
 at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
 at org.jboss.mx.interceptor.AbstractInterceptor.invoke(
AbstractInterceptor.java:133.)
 at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
 at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(
ModelMBeanOperationInterceptor.java:142)
 at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
 at org.jboss.mx.server.AbstractMBeanInvoker.invoke(
AbstractMBeanInvoker.java:264)
 at org.jboss.mx.server.MBeanServerImpl.invoke(
MBeanServerImpl.java:659)
 at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
 at $Proxy9.deploy(Unknown Source)
 at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(
URLDeploymentScanner.java:421)
 at org.jboss.deployment.scanner.URLDeploymentScanner.scan(
URLDeploymentScanner.java:634)
 at org.jboss.deployment.scanner.AbstractDeploymentScanner
$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
 at
org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(.
AbstractDeploymentScanner.java:336)
 at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(
ServiceMBeanSupport.java:289)
 at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(
ServiceMBeanSupport.java:245)
 at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(
ReflectedDispatcher.java:155.)
 at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
 at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
 at org.jboss.mx.server.AbstractMBeanInvoker.invoke(
AbstractMBeanInvoker.java:264)
 at org.jboss.mx.server.MBeanServerImpl.invoke(
MBeanServerImpl.java:659)
 at org.jboss.system.ServiceController$ServiceProxy.invoke(
ServiceController.java:978)
 at $Proxy0.start(Unknown Source)
 at org.jboss.system.ServiceController.start(
ServiceController.java:417)
 at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(
ReflectedDispatcher.java:155.)
 at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
 at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
 at org.jboss.mx.server.AbstractMBeanInvoker.invoke(
AbstractMBeanInvoker.java:264)
 at org.jboss.mx.server.MBeanServerImpl.invoke(
MBeanServerImpl.java:659)
 at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
 at $Proxy4.start(Unknown Source)
 at org.jboss.deployment.SARDeployer.start(SARDeployer.java:304)
 at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
 at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
 at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
 at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:766)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(
ReflectedDispatcher.java:155.)
 at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
 at org.jboss.mx.interceptor.AbstractInterceptor.invoke(
AbstractInterceptor.java:133.)
 at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
 at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(
ModelMBeanOperationInterceptor.java:142)
 at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
 at org.jboss.mx.server.AbstractMBeanInvoker.invoke(
AbstractMBeanInvoker.java:264)
 at org.jboss.mx.server.MBeanServerImpl.invoke(
MBeanServerImpl.java:659)
 at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
 at $Proxy5.deploy(Unknown Source)
 at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:482)
 at org.jboss.system.server.ServerImpl.start(ServerImpl.java:362)
 at org.jboss.Main.boot(Main.java:200.)
 at org.jboss.Main$1.run(Main.java:508.)
 at java.lang.Thread.run(Thread.java:619)


As far as I know, the CXF Stack utilizes Spring 2.5.5 components. Could this cause the problems? Using Spring 2.5.5 in the web application does not change anything.
Also deploying plain web services without a web application using Spring works under our environment.

  • 1. Re: ClassCastException when initializing CXFServlet
    Jim Ma Apprentice

    Can you provide more information ? for example the web.xml or what is packaged in your war file ?

  • 2. Re: ClassCastException when initializing CXFServlet
    Paul Huemer Newbie

    Thanks for the quick response, of course I can provide further information:

    web.xml:

    <?xml version="1.0" ?>
    <web-app xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
     version="2.5">
    
     <display-name>My Project</display-name>
     <welcome-file-list>
     <welcome-file>index.jsp</welcome-file>
     </welcome-file-list>
    
     <context-param>
     <param-name>contextConfigLocation</param-name>
     <param-value>
     myApplicationContext.xml
     </param-value>
     </context-param>
    
     <!-- Listener -->
     <listener>
     <listener-class>
     org.springframework.web.context.ContextLoaderListener
     </listener-class>
     </listener>
    
     <listener>
     <listener-class>
     my.example.MyServletContextListener
     </listener-class>
     </listener>
    
     <!-- CXF -->
     <!-- Not the standard JbossWS way, but same results -->
     <servlet>
     <servlet-name>CXFServlet</servlet-name>
     <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
     <init-param>
     <param-name>config-location</param-name>
     <param-value>/WEB-INF/cxf-servlet.xml</param-value>
     </init-param>
     <load-on-startup>1</load-on-startup>
     </servlet>
    
     <servlet-mapping>
     <servlet-name>CXFServlet</servlet-name>
     <url-pattern>/services/cxf/*</url-pattern>
     </servlet-mapping>
    
     <!-- Seam -->
     <listener>
     <listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
     </listener>
    
     <filter>
     <filter-name>Seam Filter</filter-name>
     <filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
     </filter>
    
     <filter-mapping>
     <filter-name>Seam Filter</filter-name>
     <url-pattern>/*</url-pattern>
     </filter-mapping>
    
     <servlet>
     <servlet-name>Seam Resource Servlet</servlet-name>
     <servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>
     </servlet>
    
     <servlet-mapping>
     <servlet-name>Seam Resource Servlet</servlet-name>
     <url-pattern>/seam/resource/*</url-pattern>
     </servlet-mapping>
    
     <!-- Facelets development mode (disable in production) -->
    
     <context-param>
     <param-name>facelets.DEVELOPMENT</param-name>
     <param-value>true</param-value>
     </context-param>
    
     <!-- JSF -->
    
     <context-param>
     <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
     <param-value>.xhtml</param-value>
     </context-param>
    
     <servlet>
     <servlet-name>Faces Servlet</servlet-name>
     <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
     <load-on-startup>1</load-on-startup>
     </servlet>
    
     <servlet-mapping>
     <servlet-name>Faces Servlet</servlet-name>
     <url-pattern>*.seam</url-pattern>
     </servlet-mapping>
    
     <security-constraint>
     <display-name>Restrict raw XHTML Documents</display-name>
     <web-resource-collection>
     <web-resource-name>XHTML</web-resource-name>
     <url-pattern>*.xhtml</url-pattern>
     </web-resource-collection>
     <auth-constraint />
     </security-constraint>
    
    </web-app>
    
    
    


    cxf-servlet.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:jaxws="http://cxf.apache.org/jaxws"
     xmlns:cxf="http://cxf.apache.org/core"
     xsi:schemaLocation="http://www.springframework.org/schema/beans
     http://www.springframework.org/schema/beans/spring-beans.xsd
     http://cxf.apache.org/jaxws
     http://cxf.apache.org/schemas/jaxws.xsd
     http://cxf.apache.org/core
     http://cxf.apache.org/schemas/core.xsd"
     default-autowire="byName">
    
     <!-- Load CXF modules from cxf.jar -->
     <import resource="classpath:META-INF/cxf/cxf.xml" />
     <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
     <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
    
     <!-- Enable message logging using the CXF logging feature -->
    
     <cxf:bus>
     <cxf:features>
     <cxf:logging />
     </cxf:features>
     </cxf:bus>
    
     <!-- Service endpoint -->
    
     <jaxws:endpoint id="myService"
     implementor="my.example.cxf.SOAPReceiverServiceImpl"
     address="/myService" />
    
    </beans>
    


    WAR-structure:

    example.war
     META-INF
     pages
     WEB-INF
     classes
     ...
     lib
     ant-antlr.jar
     commons-beanutils.jar
     commons-digester.jar
     commons-lang-2.4.jar
     core.jar
     dozer-4.4.1.jar
     drools-compiler.jar
     drools-core.jar
     hibernate-3.3.1.GA.jar
     janino.jar
     jboss-el.jar
     jboss-seam.jar
     jboss-seam-debug.jar
     jboss-seam-ui.jar
     jsf-facelets.jar
     jxl.jar
     slf4j-api-1.5.8.jar
     slf4j-jcl-1.5.8.jar
     spring-2.5.6.SEC01.jar
     components.xml
     cxf-servlet.xml
     faces-config.xml
     jboss-web.xml (empty)
     pages.xml
     web.xml
    



  • 3. Re: ClassCastException when initializing CXFServlet
    Jim Ma Apprentice

     

    "paulhuemer" wrote:
    I am currently migrating existing web projects from JBoss AS 4.0.3 to 4.3.2.
    Our web projects utilize Spring 2.5.6.SEC01 and offer WebServices using Apache CXF 2.2.3.
    As far as I know, the CXF Stack utilizes Spring 2.5.5 components. Could this cause the problems? Using Spring 2.5.5 in the web application does not change anything.

    Thanks for your clear information. The Spring 2.5.6.SEC01 in your war file cause this problem . Try to set the classloading isolation in the jboss-web.xml and look at if cxf can work with Spring 2.5.6 SEC01.

  • 4. Re: ClassCastException when initializing CXFServlet
    Paul Huemer Newbie

    I tried to enable classloading isolation for the WAR, but neither of these two configurations worked out. Is there any other way I am unaware of how to achieve classloading isolation?

    <!DOCTYPE jboss-web PUBLIC
     "-//JBoss//DTD Web Application 4.2//EN"
     "http://www.jboss.org/j2ee/dtd/jboss-web_4_2.dtd">
    <jboss-web>
     <class-loading>
     <loader-repository.>
     at.my.example:archive=fixwerte.war
     <loader-repository-config>java2ParentDelegation=false</loader-repository-config>
     </loader-repository>
     </class-loading>
    </jboss-web>
    


    According to http://www.jboss.org/community/wiki/ClassLoadingconfiguration:

    <!DOCTYPE jboss-web PUBLIC
     "-//JBoss//DTD Web Application 4.2//EN"
     "http://www.jboss.org/j2ee/dtd/jboss-web_4_2.dtd">
    <jboss-web>
     <loader-repository.>
     at.my.example:archive=fixwerte.war
     <loader-repository-config>java2ParentDelegation=false</loader-repository-config>
     </loader-repository>
    </jboss-web>
    


  • 5. Re: ClassCastException when initializing CXFServlet
    Paul Huemer Newbie

    Any ideas anybody?

    How can I hide the web-application's Spring-jar from the "built-in" ones in the CXF-stack?

  • 6. Re: ClassCastException when initializing CXFServlet
    Paul Huemer Newbie

    Well, omitting the stack and bundle Apache CXF 2.2.2 with my webapp (including Spring 2.5.6.SEC01) works for now. By far not my favorite solution altough.

  • 7. Re: ClassCastException when initializing CXFServlet
    Rey Rivera Newbie

    I had the exact same problem and after trying almost everything including stuff that didn't make sense, I was able to make it work by putting the spring jars (spring.jar, spring-web and spring-webmvc) in the jboss_home/server/{configuration}/lib directory.  I used the 2.5.5 spring jars.  Not being an expert in jboss I don't know if this is the way it's supposed to be but at least it works....

     

    Rey

  • 8. Re: ClassCastException when initializing CXFServlet
    Kyle Bober Newbie

    Hello all,

       I am running into the same issue as posted above. The onbly diffrence is that we are using the 'org.springframework.web.context.ContextLoaderListener' in our web.xml. I am running JBoss 5.1.0 with EAR classloading isolation set to true. We are also running JBossWS Apache CXF 3.2.0. Our application is using Spring 2.5.6 and we run into the same error:

     

    13:00:40,562 ERROR [[/ChannelService]] StandardWrapper.Throwable
    java.lang.ClassCastException: org.jboss.spring.vfs.context.VFSXmlWebApplicationContext cannot be cast to java.lang.Exception
        at org.apache.cxf.transport.servlet.CXFServlet.loadSpringBus(CXFServlet.java:96)
        at org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:70)
        at org.jboss.wsf.stack.cxf.CXFServletExt.loadBus(CXFServletExt.java:100)
        at org.apache.cxf.transport.servlet.AbstractCXFServlet.init(AbstractCXFServlet.java:90)
        at org.jboss.wsf.stack.cxf.CXFServletExt.init(CXFServletExt.java:77)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1048)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:950)
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4122)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4421)
        at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:310)
        at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:142)
        at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:461)
        at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)
        at org.jboss.web.deployers.WebModule.start(WebModule.java:97)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
        at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
        at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
        at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
        at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
        at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
        at $Proxy38.start(Unknown Source)
        at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)
        at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37)
        at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
        at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
        at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
        at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
        at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:286)
        at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
        at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
        at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
        at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
        at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
        at org.jboss.system.ServiceController.start(ServiceController.java:460)
        at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:163)
        at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:99)
        at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:46)
        at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)
        at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
        at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
        at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
        at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
        at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178)
        at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1210)
        at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
        at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
        at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
        at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
        at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
        at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
        at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
        at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702)
        at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)
        at org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:362)
        at org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:255)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
        at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)
    13:00:40,562 ERROR [[/ChannelService]] Servlet /ChannelService threw load() exception
    java.lang.ClassCastException: org.jboss.spring.vfs.context.VFSXmlWebApplicationContext cannot be cast to java.lang.Exception
        at org.apache.cxf.transport.servlet.CXFServlet.loadSpringBus(CXFServlet.java:96)
        at org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:70)
        at org.jboss.wsf.stack.cxf.CXFServletExt.loadBus(CXFServletExt.java:100)
        at org.apache.cxf.transport.servlet.AbstractCXFServlet.init(AbstractCXFServlet.java:90)
        at org.jboss.wsf.stack.cxf.CXFServletExt.init(CXFServletExt.java:77)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1048)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:950)
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4122)
        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4421)
        at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:310)
        at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:142)
        at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:461)
        at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)
        at org.jboss.web.deployers.WebModule.start(WebModule.java:97)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
        at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
        at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
        at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
        at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
        at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
        at $Proxy38.start(Unknown Source)
        at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)
        at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37)
        at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
        at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
        at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
        at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
        at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:286)
        at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
        at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
        at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
        at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
        at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
        at org.jboss.system.ServiceController.start(ServiceController.java:460)
        at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:163)
        at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:99)
        at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:46)
        at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)
        at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
        at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
        at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
        at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
        at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178)
        at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1210)
        at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
        at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
        at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
        at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
        at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
        at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
        at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
        at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702)
        at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)
        at org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:362)
        at org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:255)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
        at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)

     

    We ahave an EAR that contains a WAR and a EJB JAR. The WAR is skinny an contains no jar files. All the jar files are included in the lib directory at the root of the EAR file. In the lib directory is the spring.jar whihc is of version 2.5.6. I have attempted turning on class loader isolation via the ear-deployer-jboss-beans.xml file and via the jboss-app.xml file which would then be included in the META-INF folder of the EAR. Both of these approaches did not work. I also tried including the spring.jar in the server/default/lib directory and that did no work either. What is the resolution to this issue??? Any help would be much appreciated!

     

    Regards,

    Kyle S. Bober

  • 9. Re: ClassCastException when initializing CXFServlet
    Alessio Soldano Master

    Generally speaking, embedding the cxf libs in your webapp when using the jbossws-cxf stack is likely to give you major headaches with classloading isolation requirements. You'd better leverage the CXF that already comes from the AS. Btw, you can install jbossws-cxf 3.3.0 (beware of JBWS-3048) or jbossws-cxf-3.3.1 (being released today or tomorrow), which come with more recent Apache CXF versions (2.2.8 / 2.2.9).

     

    Kyle Bober wrote:

     

    Hello all,

       I am running into the same issue as posted above. The onbly diffrence is that we are using the 'org.springframework.web.context.ContextLoaderListener' in our web.xml. I am running JBoss 5.1.0 with EAR classloading isolation set to true. We are also running JBossWS Apache CXF 3.2.0. Our application is using Spring 2.5.6 and we run into the same error:

     

    13:00:40,562 ERROR [[/ChannelService]] StandardWrapper.Throwable
    java.lang.ClassCastException: org.jboss.spring.vfs.context.VFSXmlWebApplicationContext cannot be cast to java.lang.Exception
        at org.apache.cxf.transport.servlet.CXFServlet.loadSpringBus(CXFServlet.java:96)
        at org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:70)
        at org.jboss.wsf.stack.cxf.CXFServletExt.loadBus(CXFServletExt.java:100)
        at org.apache.cxf.transport.servlet.AbstractCXFServlet.init(AbstractCXFServlet.java:90)
        at org.jboss.wsf.stack.cxf.CXFServletExt.init(CXFServletExt.java:77)

    my guess here is that you're problem comes from the VFSXmlWebApplicationContext coming from a different classloader, not the one that also loaded the CXF stuff. The CXFServlet does something like this around line 96:

     

    Object ctxObject = svCtx.getAttribute("org.springframework.web.context.WebApplicationContext.ROOT");
    if (ctxObject instanceof ApplicationContext) {
       ctx = (ApplicationContext) ctxObject;
    } else if (ctxObject != null) {
       // it should be a runtime exception                
       Exception ex = (Exception) ctxObject; // <-- line 96
       throw new ServletException(ex);
    }   
    

     

    so I *think* the VFS version of Spring application context (Snowdrop?) is not seen as an ApplicationContext, causing in the else branch of the if being executed and hence the error you see.

    You'd probably need to better debug what's happening there, and depending on that you might find a workaround for your usecase.

  • 10. Re: ClassCastException when initializing CXFServlet
    Kyle Bober Newbie

    Thanks for the response Alessio! I will dig a bit deeper and see what I can come up with!

     

    -Kyle

  • 11. Re: ClassCastException when initializing CXFServlet
    Marc van Andel Newbie

    I did have the same stacktrace. To solve this I removed the following Spring jars from my .war file:

     

    - spring-core

    - spring-context

    - spring-beans

     

    These are packaged in CXF and therefore provided by the container (obviously when you're using JBoss + CXF).

     

    Opinion: Although CXF might be a better or preferred implementation of JAX-WS and easily plugable in JBoss I think the Spring libs suit better as application libraries which should NOT be provided in the container on which an application is deployed but packaged with the application.

  • 12. Re: ClassCastException when initializing CXFServlet
    Alessio Soldano Master

    Marc van Andel wrote:

     

    I did have the same stacktrace. To solve this I removed the following Spring jars from my .war file:

     

    - spring-core

    - spring-context

    - spring-beans

    OK

     

     

     

    Opinion: Although CXF might be a better or preferred implementation of JAX-WS and easily plugable in JBoss I think the Spring libs suit better as application libraries which should NOT be provided in the container on which an application is deployed but packaged with the application.

    I see what you mean and that's also one of the reasons why on AS 6 / 7 Spring libs are not installed in JBoss Application Server by default. In particular, on AS 7 you should be able to use your Spring based application (not WS) without any limitation related to JBossWS needs. If you want to have your JBossWS-CXF based application use Spring, though, that will need to be installed as a module (org.springframework.spring) so that the Apache CXF module of the AS can "see" it and depend on it.

  • 13. Re: ClassCastException when initializing CXFServlet
    Marc van Andel Newbie

    Instead of removing the SpringFramework jars from the .war file changing the classloading mechanism serves as a good workaround. Add a file jboss-classloading.xml to the WEB-INF folder with the following content:

     

    <?xml version="1.0" encoding="UTF-8"?>

    <classloading xmlns="urn:jboss:classloading:1.0"

                  parent-first="false"

                  domain="DefaultDomain"

                  top-level-classloader="true"

                  parent-domain="Ignored"

                  export-all="NON_EMPTY"

                  import-all="true">

    </classloading>

     

    (Info provided through Red Hat Support)