I've been trying to convert one of our web service to Spring-WS, following what is describe in the book: Spring in action 2e. I've used the class PayloadRootQNameEndpointMapping for Endpoint Mapping. Our server is set up to use Saxon, and it seems to be having problem with the XML Source that this Mapping class send it. The problem is that PayloadRootQNameEndpointMapping calls Saxon transform with a Source of type SaajXMLReader, which seems to support SAX and not SAX2, while Saxon is expecting a SAX 2 compliant source. At least this is my understading of the problem.
Here is the stack trace I get. If anyone can help me with this problem, I would really appreciate it.
Llaurick
Trace:
2007-09-27 23:36:06,537 WARN org.springframework.ws.soap.server.SoapMessageDisp atcher - Endpoint invocation resulted in exception - responding with SOAP Fault
net.sf.saxon.trans.DynamicError: The SAX2 parser does not support setting the 'namespaces' feature to true
at net.sf.saxon.event.Sender.configureParser(Sender.j ava:357)
at net.sf.saxon.event.Sender.sendSAXSource(Sender.jav a:241)
at net.sf.saxon.event.Sender.send(Sender.java:142)
at net.sf.saxon.IdentityTransformer.transform(Identit yTransformer.java:29)
at org.springframework.ws.server.endpoint.support.Pay loadRootUtils.getPayloadRootQName(PayloadRootUtils .java:79)
at org.springframework.ws.server.endpoint.mapping.Pay loadRootQNameEndpointMapping.resolveQName(PayloadR ootQNameEndpointMapping.java:56)
at org.springframework.ws.server.endpoint.mapping.Abs tractQNameEndpointMapping.getLookupKeyForMessage(A bstractQNameEndpointMapping.java:33)
at org.springframework.ws.server.endpoint.mapping.Abs tractMapBasedEndpointMapping.getEndpointInternal(A bstractMapBasedEndpointMapping.java:106)
at org.springframework.ws.server.endpoint.mapping.Abs tractEndpointMapping.getEndpoint(AbstractEndpointM apping.java:83)
at org.springframework.ws.server.MessageDispatcher.ge tEndpoint(MessageDispatcher.java:238)
at org.springframework.ws.server.MessageDispatcher.di spatch(MessageDispatcher.java:191)
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:461)
at org.springframework.web.servlet.FrameworkServlet.d oPost(FrameworkServlet.java:426)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet .java:856)
at weblogic.servlet.internal.StubSecurityHelper$Servl etServiceAction.run(StubSecurityHelper.java:225)
at weblogic.servlet.internal.StubSecurityHelper.invok eServlet(StubSecurityHelper.java:127)
at weblogic.servlet.internal.ServletStubImpl.execute( ServletStubImpl.java:283)
at weblogic.servlet.internal.ServletStubImpl.execute( ServletStubImpl.java:175)
at weblogic.servlet.internal.WebAppServletContext$Ser vletInvocationAction.run(WebAppServletContext.java :3211)
at weblogic.security.acl.internal.AuthenticatedSubjec t.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(Se curityManager.java:121)
at weblogic.servlet.internal.WebAppServletContext.sec uredExecute(WebAppServletContext.java:1983)
at weblogic.servlet.internal.WebAppServletContext.exe cute(WebAppServletContext.java:1890)
at weblogic.servlet.internal.ServletRequestImpl.run(S ervletRequestImpl.java:1344)
at weblogic.work.ExecuteThread.execute(ExecuteThread. java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java :181)


Reply With Quote
.I have the same exception