Skip to Main Content

Java EE (Java Enterprise Edition) General Discussion

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

javax.xml.ws.soap.SOAPFaultException - complex type soap response

843833Jan 3 2007 — edited Jan 5 2007
Hi folks,

got a - hopefully simple to answer - question about soap and webservices.

first, the environment setup: Mac OS X 10.4.8, Java EE 5, Annotations, Hibernate, Sun Java System Application Server 9.

second, the scenario: I have an enterprise application that consists of a WAR-archive (holding the webbased admin access to my application) and a EJB-Jar-archive inside. The latter one does define some Enterprise Java Beans (stateless SessionBeans), which are also annotated as being fully accessable Web-Services. A standalone client then should be able to access the application by calling these webservices. By deploying this EAR to the Sun Server, all WSDLs and webservices.xml are created dynamically.

third, the problem: When testing the single webservice methods through the Sun Server admin interface test-page, only these methods work, which receive a simple type parameter and also return a simple type parameter (e.g. long, int, ..). When invoking a method to return a non-simple type (i.e. a self defined java object "jobOrder" holding ints, longs, Sets, etc..), i get the following error:

on the webserver side:
javax.servlet.ServletException: java.lang.reflect.InvocationTargetException at
com.sun.enterprise.webservice.monitoring.WebServiceTesterServlet.doPost(WebServiceTesterServlet.java:311) at
com.sun.enterprise.webservice.monitoring.WebServiceTesterServlet.invoke(WebServiceTesterServlet.java:106) at
com.sun.enterprise.webservice.EjbWebServiceServlet.service(EjbWebServiceServlet.java:102) at
javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at
com.sun.enterprise.web.AdHocContextValve.invoke(AdHocContextValve.java:101) at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566) at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536) at
com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:71) at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182) at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566) at
com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120) at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939) at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137) at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566) at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536) at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939) at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239) at
com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter(ProcessorTask.java:667) at
com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked(ProcessorTask.java:574) at 
com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:844) at
com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:287) at
com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:212) at
com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252) at
com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75) 
Caused by: java.lang.reflect.InvocationTargetException at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at
java.lang.reflect.Method.invoke(Method.java:585) at
com.sun.enterprise.webservice.monitoring.WebServiceTesterServlet.doPost(WebServiceTesterServlet.java:284) ... 23 more 
Caused by: javax.xml.ws.soap.SOAPFaultException: JTA transaction begin failed at com.sun.xml.ws.encoding.soap.ClientEncoderDecoder.toMessageInfo(ClientEncoderDecoder.java:86) at 
com.sun.xml.ws.encoding.soap.client.SOAPXMLDecoder.toMessageInfo(SOAPXMLDecoder.java:211) at 
com.sun.xml.ws.protocol.soap.client.SOAPMessageDispatcher.receive(SOAPMessageDispatcher.java:540) at
com.sun.xml.ws.protocol.soap.client.SOAPMessageDispatcher.doSend(SOAPMessageDispatcher.java:260) at
com.sun.xml.ws.protocol.soap.client.SOAPMessageDispatcher.send(SOAPMessageDispatcher.java:139) at 
com.sun.xml.ws.encoding.soap.internal.DelegateBase.send(DelegateBase.java:86) at
com.sun.xml.ws.client.EndpointIFInvocationHandler.implementSEIMethod(EndpointIFInvocationHandler.java:174) at
com.sun.xml.ws.client.EndpointIFInvocationHandler.invoke(EndpointIFInvocationHandler.java:108) at 
$Proxy105.findReparationOrderById(Unknown Source) ...
in the Sun AppServer log file:
Error in encoding SOAP Message
	at com.sun.xml.ws.encoding.soap.server.SOAPXMLEncoder.toSOAPMessage(SOAPXMLEncoder.java:115)
	at com.sun.xml.ws.protocol.soap.server.SOAPMessageDispatcher.makeSOAPMessage(SOAPMessageDispatcher.java:352)
	at com.sun.xml.ws.protocol.soap.server.SOAPMessageDispatcher.receive(SOAPMessageDispatcher.java:157)
	at com.sun.xml.ws.server.Tie.handle(Tie.java:90)
	at com.sun.enterprise.webservice.Ejb3MessageDispatcher.handlePost(Ejb3MessageDispatcher.java:160)
	at com.sun.enterprise.webservice.Ejb3MessageDispatcher.invoke(Ejb3MessageDispatcher.java:89)
	at com.sun.enterprise.webservice.EjbWebServiceServlet.dispatchToEjbEndpoint(EjbWebServiceServlet.java:186)
	at com.sun.enterprise.webservice.EjbWebServiceServlet.service(EjbWebServiceServlet.java:117)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
	at com.sun.enterprise.web.AdHocContextValve.invoke(AdHocContextValve.java:101)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:71)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
	at com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
	at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239)
	at com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter(ProcessorTask.java:667)
	at com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked(ProcessorTask.java:574)
	at com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:844)
	at com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:287)
	at com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:212)
	at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
	at com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75)
Caused by: javax.xml.bind.MarshalException
[...]
four, the question: is it generally only possible to pass and receive simple data types through soap? if so, what to do with more complex application-integrated data structures or even Lists? The generated *.xsd files which XML-define the structure of the given "jobOrder" object seem to be correct. Or is it just a completely different root cause ?

any other suggestions, work-arounds, technologies to use or hints ?

thanks in advance

andre from berlin

Message was edited by:
derandre
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jan 31 2007
Added on Jan 3 2007
0 comments
942 views