I would suggest upgrading to CXF 2.2.2. The Dispatch/Provider stuff got a
major overhaul in 2.2.1 and 2.2.2 which may have fixed this.
Dan
On Mon June 8 2009 10:07:53 am xinxinwang wrote:
> My service implements Provider<SAXSource> in PAYLOAD service mode:
>
> @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
> @WebServiceProvider(serviceName = "RetrieveService", portName =
> "RetrieveServiceHttpPort", targetNamespace =
> "urn:soa.army.mil:adsl:sis:09-1:1-1:service:bma:log:ums-ds")
> @ServiceMode(value=Service.Mode.PAYLOAD)
> @Addressing(enabled=false, required=false)
> public class UMSRetrievePortTypeImpl implements Provider<SAXSource> {
>
> public SAXSource invoke(SAXSource request) throws WebServiceException {
>
> ......
> }
> }
>
> I deployed the service to Tomcat 5.5.27 or Tomcat 6 without errors. My cxf
> context xml is defined as follows:
>
> <?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-2.0.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" >
>
> <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"/>
>
> <jaxws:endpoint
> xmlns:ums="urn:soa.army.mil:adsl:sis:09-1:1-1:service:bma:log:ums-ds"
> id="ums.data.service.impl"
> serviceName = "ums:RetrieveService"
> endpointName = "ums:RetrieveServiceHttpPort"
>
> implementor="smil.mil.army.forscom.ums._09_1._1_0.impl.UMSRetrievePortTypeI
>mpl" wsdlLocation = "WEB-INF/wsdl/UMSDataServiceRi.wsdl"
> address="/RetrieveService">
>
>
> </jaxws:endpoint>
>
> </beans>
>
>
> When I sent this SOAP message to the service:
>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:urn="urn:soa.army.mil:adsl:sis:09-1:1-1:service:bma:log:ums-ds">
> <soapenv:Header/>
> <soapenv:Body>
> <urn:RetrieveRequest/>
> </soapenv:Body>
> </soapenv:Envelope>
>
> I got this exception:
>
> org.apache.cxf.interceptor.Fault: Unable to create envelope from given
> source:
> at
> org.apache.cxf.jaxws.interceptors.DispatchInDatabindingInterceptor.handleMe
>ssage(DispatchInDatabindingInterceptor.java:182) at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChai
>n.java:220) at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationO
>bserver.java:78) at
> org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestinati
>on.java:92) at
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(Servle
>tController.java:285) at
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController
>.java:168) at
> org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServl
>et.java:175) at
> org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServl
>et.java:153) at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicatio
>nFilterChain.java:269) at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterC
>hain.java:188) at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.j
>ava:213) at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.j
>ava:172) at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:12
>7) at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:11
>7) at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.jav
>a:108) at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
> at
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.process
>Connection(Http11BaseProtocol.java:665) at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.ja
>va:528) at
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerW
>orkerThread.java:81) at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.ja
>va:689) at java.lang.Thread.run(Thread.java:595)
> Caused by: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Unable to create
> envelope from given source:
> at
> com.sun.xml.messaging.saaj.soap.EnvelopeFactory.createEnvelope(EnvelopeFact
>ory.java:114) at
> com.sun.xml.messaging.saaj.soap.ver1_1.SOAPPart1_1Impl.createEnvelopeFromSo
>urce(SOAPPart1_1Impl.java:71) at
> com.sun.xml.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:
>125) at
> org.apache.cxf.jaxws.interceptors.DispatchInDatabindingInterceptor.handleMe
>ssage(DispatchInDatabindingInterceptor.java:126) ... 23 more
> Caused by: javax.xml.transform.TransformerException:
> org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to create or
> change an object in a way which is incorrect with regard to namespaces.
> at
> org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerI
>dentityImpl.java:480) at
> com.sun.xml.messaging.saaj.util.transform.EfficientStreamingTransformer.tra
>nsform(EfficientStreamingTransformer.java:390) at
> com.sun.xml.messaging.saaj.soap.EnvelopeFactory.createEnvelope(EnvelopeFact
>ory.java:102) ... 26 more
> Caused by: org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to
> create or change an object in a way which is incorrect with regard to
> namespaces.
> at org.apache.xml.utils.DOMBuilder.startElement(DOMBuilder.java:354)
> at
> org.apache.xalan.transformer.TransformerIdentityImpl.startElement(Transform
>erIdentityImpl.java:1042) at
> org.xml.sax.helpers.XMLFilterImpl.startElement(XMLFilterImpl.java:527) at
> com.sun.xml.messaging.saaj.util.RejectDoctypeSaxFilter.startElement(RejectD
>octypeSaxFilter.java:176) at
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(A
>bstractSAXParser.java:533) at
> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartE
>lement(XMLNSDocumentScannerImpl.java:330) at
> com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentD
>ispatcher.scanRootElementHook(XMLNSDocumentScannerImpl.java:779) at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$Frag
>mentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1794) at
> com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scan
>Document(XMLDocumentFragmentScannerImpl.java:368) at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Co
>nfiguration.java:834) at
> com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Co
>nfiguration.java:764) at
> com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:1
>48) at
> com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Abstract
>SAXParser.java:1242) at
> org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java:333) at
> org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerI
>dentityImpl.java:463) ... 28 more
>
>
> I tried Provider<DOMSource> and got the same error. I searched this group
> and Internet and have not found any answer to solve this problem. Does
> anybody know what the root cause it?
>
> Thanks,
>
> Xinxin
--
Daniel Kulp
[email protected]
http://www.dankulp.com/blog