I am trying to use Annotations with my Endpoint but I do not want to use Marshalling. My input and output are both parsed in the method as JDOM objects. Why do I get the following exception
Code:2009-03-30 17:38:58,062 DEBUG SoapMessageDispatcher:{MessageDispatcher.java:313} - Endpoint invocation resulted in exception - responding with Fault java.lang.IllegalStateException: No adapter for endpoint [protected javax.xml.bind.JAXBElement<org.jdom.Element> service.MarshallingRecipeRefreshEndpoint.invokeInternal(javax.xml.bind.JAXBElement<org.jdom.Element>) throws java.lang.Exception]: Does your endpoint implement a supported interface like MessageHandler or PayloadEndpoint? at org.springframework.ws.server.MessageDispatcher.getEndpointAdapter(MessageDispatcher.java:279) at org.springframework.ws.server.MessageDispatcher.dispatch(MessageDispatcher.java:220) at org.springframework.ws.server.MessageDispatcher.receive(MessageDispatcher.java:168) at org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java:88) at org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter.handle(WebServiceMessageReceiverHandlerAdapter.java:57) at org.springframework.ws.transport.http.MessageDispatcherServlet.doService(MessageDispatcherServlet.java:230) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511) 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(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Thread.java:595)
Method
RequestCode:@PayloadRoot(localPart = "AnnRecipeRefreshRequest", namespace = "http://vicr.com/vmecs/schemas") protected JAXBElement<Element> invokeInternal(JAXBElement<Element> request) throws Exception { log.info("protected Element invokeInternal(Element request) throws Exception "); Input input = new Input(); input.setPid(this.pidExpression.valueOf(request)); input.setRefreshReason(this.refreshReasonExpression.valueOf(request)); input.setUserId(Integer.parseInt(this.userIdExpression.valueOf(request))); // ObjectFactory of = new ObjectFactory(); // RecipeRefreshRequest req = of.createRecipeRefreshRequest(); // req = request; log.info("MarshallingRecipeRefreshEndpoint.invokeInternal.refreshRecipe.input : " + input.getPid()); // Input input = new Input(); // input.setPid(req.getPid()); // input.setUserId(Integer.parseInt(req.getUserId())); // input.setRefreshReason(req.getRefreshReason()); Output output = this.taskList.refreshRecipe(input); finalize(); Element responseElement = new Element("RecipeRefreshResponse", this.namespace); responseElement.addContent(new Element("code", this.namespace).setText("" + output.getCode())); responseElement.addContent(new Element("msg", this.namespace).setText("" + output.getMsg())); // log.info(output.getMsg()); // RecipeRefreshResponse response = of.createRecipeRefreshResponse(); // response = new RecipeRefreshResponse(); // response.setMsg(output.getMsg()); // response.setCode(output.getCode() + ""); // return responseElement; return (new JAXBElement<Element>(new QName(this.namespace.getURI(), "RecipeRefreshResponse", ""), Element.class, responseElement)); }
LogsCode:<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sch="http://vicr.com/vmecs/schemas"> <soapenv:Header/> <soapenv:Body> <sch:AnnRecipeRefreshRequest> <!--You may enter the following 3 items in any order--> <!--type: string--> <sch:pid>RWK0693</sch:pid> <!--type: string--> <sch:userId>0</sch:userId> <!--type: string--> <sch:refreshReason>quae divum incedo</sch:refreshReason> </sch:AnnRecipeRefreshRequest> </soapenv:Body> </soapenv:Envelope>
Code:2009-03-30 17:38:58,062 DEBUG SoapMessageDispatcher:{MessageDispatcher.java:313} - Endpoint invocation resulted in exception - responding with Fault java.lang.IllegalStateException: No adapter for endpoint [protected javax.xml.bind.JAXBElement<org.jdom.Element> service.MarshallingRecipeRefreshEndpoint.invokeInternal(javax.xml.bind.JAXBElement<org.jdom.Element>) throws java.lang.Exception]: Does your endpoint implement a supported interface like MessageHandler or PayloadEndpoint? at org.springframework.ws.server.MessageDispatcher.getEndpointAdapter(MessageDispatcher.java:279) at org.springframework.ws.server.MessageDispatcher.dispatch(MessageDispatcher.java:220) at org.springframework.ws.server.MessageDispatcher.receive(MessageDispatcher.java:168) at org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java:88) at org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter.handle(WebServiceMessageReceiverHandlerAdapter.java:57) at org.springframework.ws.transport.http.MessageDispatcherServlet.doService(MessageDispatcherServlet.java:230) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511) 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(ApplicationFilterChain.java:269) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) at java.lang.Thread.run(Thread.java:595)


Reply With Quote