Paul, This looks like a bug in Axis2. Can you file a bug in Axis2 project? I'll take a look at it. For now can you try setting the following system property:
-Dorg.apache.geronimo.saaj.provider=sun This should tell Geronimo to use Sun SAAJ implementation instead of Axis2. Jarek p.s. I moved this discussion to the user mailing list. On 10/8/07, Paul ANDERSON <[EMAIL PROTECTED]> wrote: > I've hit trouble moving my JAXB-unmarshalled web service (based on > Spring Web Services 1.0.0) from Tomcat 5.5.23 to Geronimo 2.0.1; stack > trace below. I used JDK6 on Linux for both TC and Geronimo. > > I stripped the .war down to use dummy empty implementations of > everything, with no extra jar's, so that only the unmarshalling was > causing a problem. > (I generate my JAXB classes with JDK wsimport on the command line and > include them in WEB-INF/classes, so unlike for Axis2 and CXF they don't > include Geronimo machinery-maybe this is a problem.) > > I think the problem is because of Geronimo's Axis 2 SAAJ implementation, > and it can't be overridden even when classloader priority is configured > to be to the servlet context. Also, I've tried setting JAVA_OPTS in the > geronimo.sh startup script to include > -Djavax.xml.soap.MessageFactory=com.sun.xml.messaging.saaj.soap.ver1_1.S > OAPMessageFactory1_1Impl etc but it had no effect. > > My fix was to replace the impl and api jars in the Geronimo repository > with empty files, so that the deployer's dependency checker was fooled > and rmi and the server started without complaining. > Now my web service works. But I have a bad feeling about what I've just > done to Geronimo - probably it will prevent me using CXF in the same > server. > > Anyone got a better workaround, or a fix for Geronimo? > > 16:33:04,183 WARN [SoapMessageDispatcher] Endpoint invocation resulted > in exception - responding with SOAP Fault > java.lang.ClassCastException: > org.apache.axiom.soap.impl.dom.SOAPMessageImpl cannot be cast to > org.apache.axiom.om.impl.dom.ElementImpl > at org.apache.axis2.saaj.NodeImplEx.toSAAJNode2(NodeI mplEx.java:260) > at org.apache.axis2.saaj.NodeImplEx.toSAAJNode(NodeIm plEx.java:181) > at org.apache.axis2.saaj.SOAPElementImpl.getParentEle > ment(SOAPElementImpl.java:723) > at org.apache.axis2.saaj.SOAPElementImpl.getParentNod > e(SOAPElementImpl.java:778) > at com.sun.xml.bind.unmarshaller.DOMScanner.buildName > spaceSupport(DOMScanner.java:159) > at com.sun.xml.bind.unmarshaller.DOMScanner.buildName > spaceSupport(DOMScanner.java:159) > at com.sun.xml.bind.unmarshaller.DOMScanner.scan(DOMS canner.java:100) > at com.sun.xml.bind.v2.runtime.unmarshaller.Unmarshal > lerImpl.unmarshal0(UnmarshallerImpl.java:288) > at com.sun.xml.bind.v2.runtime.unmarshaller.Unmarshal > lerImpl.unmarshal(UnmarshallerImpl.java:271) > at javax.xml.bind.helpers.AbstractUnmarshallerImpl.un > marshal(AbstractUnmarshallerImpl.java:107) > at org.springframework.oxm.jaxb.Jaxb2Marshaller.unmar > shal(Jaxb2Marshaller.java:312) > at org.springframework.ws.support.MarshallingUtils.un > marshal(MarshallingUtils.java:54) > at org.springframework.ws.server.endpoint.adapter.Mar > shallingMethodEndpointAdapter.unmarshalRequest(Mar > shallingMethodEndpointAdapter.java:145) > at org.springframework.ws.server.endpoint.adapter.Mar > shallingMethodEndpointAdapter.invokeInternal(Marsh > allingMethodEndpointAdapter.java:135) > at org.springframework.ws.server.endpoint.adapter.Abs > tractMethodEndpointAdapter.invoke(AbstractMethodEn > dpointAdapter.java:58) > at org.springframework.ws.server.MessageDispatcher.di > spatch(MessageDispatcher.java:211) > at org.springframework.ws.server.MessageDispatcher.re > ceive(MessageDispatcher.java:158) > at org.springframework.ws.transport.support.WebServic > eMessageReceiverObjectSupport.handleConnection(Web > ServiceMessageReceiverObjectSupport.java:87) > at org.springframework.ws.transport.http.WebServiceMe > ssageReceiverHandlerAdapter.handle(WebServiceMessa > geReceiverHandlerAdapter.java:57) > at org.springframework.ws.transport.http.MessageDispa > tcherServlet.doService(MessageDispatcherServlet.ja va:158) > at org.springframework.web.servlet.FrameworkServlet.p > rocessRequest(FrameworkServlet.java:475) > at org.springframework.web.servlet.FrameworkServlet.d > oPost(FrameworkServlet.java:440) > at javax.servlet.http.HttpServlet.service(HttpServlet .java:713) > at javax.servlet.http.HttpServlet.service(HttpServlet .java:806) > at org.apache.catalina.core.ApplicationFilterChain.in > ternalDoFilter(ApplicationFilterChain.java:290) > at org.apache.catalina.core.ApplicationFilterChain.do > Filter(ApplicationFilterChain.java:206) > at org.apache.catalina.core.StandardWrapperValve.invo > ke(StandardWrapperValve.java:230) > at org.apache.catalina.core.StandardContextValve.invo > ke(StandardContextValve.java:175) > at org.apache.geronimo.tomcat.valve.DefaultSubjectVal > ve.invoke(DefaultSubjectValve.java:56) > at org.apache.geronimo.tomcat.GeronimoStandardContext > $SystemMethodValve.invoke(GeronimoStandardContext. java:351) > at org.apache.geronimo.tomcat.valve.GeronimoBeforeAft > erValve.invoke(GeronimoBeforeAfterValve.java:47) > at org.apache.catalina.core.StandardHostValve.invoke( > StandardHostValve.java:128) > at org.apache.catalina.valves.ErrorReportValve.invoke > (ErrorReportValve.java:104) > at org.apache.catalina.core.StandardEngineValve.invok > e(StandardEngineValve.java:109) > at org.apache.catalina.valves.AccessLogValve.invoke(A > ccessLogValve.java:563) > at org.apache.catalina.connector.CoyoteAdapter.servic > e(CoyoteAdapter.java:261) > at org.apache.coyote.http11.Http11Processor.process(H > ttp11Processor.java:844) > at org.apache.coyote.http11.Http11Protocol$Http11Conn > ectionHandler.process(Http11Protocol.java:581) > at org.apache.tomcat.util.net.JIoEndpoint$Worker.run( > JIoEndpoint.java:447) > at java.lang.Thread.run(Thread.java:619) >
