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
Code:
	
	@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));
	}
Request
Code:
<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>
Logs
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)