Hi, there is an application I'm writing a web service for that needs a response in Plain Old XML (POX). I'm new to Spring WS so I followed the HolidayRequest tutorial and got it to properly receive requests and send responses but the responses were sent with the following format:
The format I need is this:Code:<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header/> <SOAP-ENV:Body> <Person> <FirstName>John</FirstName> <LastName>Smith</LastName> </Person> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
I was hoping that it would be as simple as adding this line to spring-ws-servlet.xml:Code:<Person> <FirstName>John</FirstName> <LastName>Smith</LastName> </Person>
but the error I get when I test in SoapUI is:Code:<bean id="messageFactory" class="org.springframework.ws.pox.dom.DomPoxMessageFactory" />
I tried asking on Stack Overflow yesterday but haven't gotten any responses. If there is any more information I should provide, please ask. Any help I could get would be greatly appreciated it.Code:java.lang.IllegalArgumentException: AbstractSoapFaultDefinitionExceptionResolver requires a SoapMessageObject of class [org.springframework.ws.pox.dom.DomPoxMessage] must be an instance of interface org.springframework.ws.soap.SoapMessage at org.springframework.util.Assert.isInstanceOf(Assert.java:337) at org.springframework.ws.soap.server.endpoint.AbstractSoapFaultDefinitionExceptionResolver.resolveExceptionInternal(AbstractSoapFaultDefinitionExceptionResolver.java:61) at org.springframework.ws.server.endpoint.AbstractEndpointExceptionResolver.resolveException(AbstractEndpointExceptionResolver.java:106) at org.springframework.ws.server.MessageDispatcher.processEndpointException(MessageDispatcher.java:330) at org.springframework.ws.server.MessageDispatcher.dispatch(MessageDispatcher.java:245) at org.springframework.ws.server.MessageDispatcher.receive(MessageDispatcher.java:173) at org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java:88) at org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter.handle(WebServiceMessageReceiverHandlerAdapter.java:59) at org.springframework.ws.transport.http.MessageDispatcherServlet.doService(MessageDispatcherServlet.java:239) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206) at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:324) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
EDIT: I put JAXB in the title but that was only from some tutorials I've been trying. I don't need to use it if there's something better/easier that gets the job done.


Reply With Quote