Collection/javabean deserialization not working
-----------------------------------------------
Key: WSIF-88
URL: http://issues.apache.org/jira/browse/WSIF-88
Project: Axis-WSIF
Issue Type: Bug
Affects Versions: 2.1
Environment: Apache AXIS 1.3
Reporter: David Castro
==== EXCEPTION ====
Internal exception that is caught on line 1603 in WSIFOperation_ApacheAxis:
org.xml.sax.SAXException: Deserializing parameter 'simulateReturn': could
not find deserializer for type {urn:SODWS}SimulationResult
This exception is being generated for a class that has a beanserializer
defined. This bean has a collection attribute with another bean inside (also
has a bean serializer defined). The web service returns what looks to be a
correct response, but WSIF if dying on deserialization. Is there something
more that needs to be added to the definition, even if they are simple
javabeans? I've seen some references about default behavior of WSIF and
wrapped/unwrapped setting that can generate this error messsage. I tried
setting the context to use both with the same result.
==== service mapping ====
<service name="MyServiceProcessor" provider="java:RPC">
<parameter name="scope" value="session"/>
<parameter name="allowedMethods" value="*"/>
<parameter name="className" value="test.MyService"/>
<beanMapping languageSpecificType="java:test.SimulationRequest"
qname="ns1:SimulationRequest" xmlns:ns1="urn:TESTWS"/>
<beanMapping languageSpecificType="java:test.SimulationResponsibilityEntry"
qname="ns1:SimulationResponsibilityEntry" xmlns:ns1="urn:TESTWS"/>
<beanMapping languageSpecificType="java:test.SimulationResult"
qname="ns1:SimulationResult" xmlns:ns1="urn:TESTWS"/>
<beanMapping languageSpecificType="java:test.SimulationConflict"
qname="ns1:SimulationConflict" xmlns:ns1="urn:TESTWS"/>
</service>
========
BTW, without turning on log4j I also only got the below exception. Should I
have recieved the aforementioned exception as a fault part or as part of the
stack trace rather than seeing this not so helpful message? It appears that
there is no Fault part added, even though an AxisError was thrown and the
success status was set to false.
org.apache.wsif.WSIFException: Operation failed but returned fault message
contained no part
at
org.apache.wsif.base.WSIFClientProxy.invoke(WSIFClientProxy.java:292) at
$Proxy0.simulate(Unknown Source)
at
com.logicalapps.onecenter.webservice.SODWebServiceTest.testBasicService(SODWebServiceTest.java:87)
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:324)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:325)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.executeInVM(JUnitTask.java:848)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:556)
at
org.apache.tools.ant.taskdefs.optional.junit.JUnitTask.execute(JUnitTask.java:532)
at org.apache.tools.ant.Task.perform(Task.java:341)
at org.apache.commons.jelly.tags.ant.AntTag.doTag(AntTag.java:185)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
at
org.apache.commons.jelly.tags.core.OtherwiseTag.doTag(OtherwiseTag.java:87)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
at
org.apache.commons.jelly.tags.core.ChooseTag.doTag(ChooseTag.java:84) at
org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
at org.apache.commons.jelly.TagSupport.invokeBody(TagSupport.java:233)
at org.apache.commons.jelly.tags.core.IfTag.doTag(IfTag.java:88)
at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:279)
at org.apache.commons.jelly.impl.ScriptBlock.run(ScriptBlock.java:135)
at
org.apache.maven.jelly.tags.werkz.MavenGoalTag.runBodyTag(MavenGoalTag.java:79)
at
org.apache.maven.jelly.tags.werkz.MavenGoalTag$MavenGoalAction.performAction(MavenGoalTag.java:110)
at com.werken.werkz.Goal.fire(Goal.java:639)
at com.werken.werkz.Goal.attain(Goal.java:575)
at
org.apache.maven.plugin.PluginManager.attainGoals(PluginManager.java:671)
at org.apache.maven.MavenSession.attainGoals(MavenSession.java:263)
at org.apache.maven.cli.App.doMain(App.java:488)
at org.apache.maven.cli.App.main(App.java:1239)
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:324)
at com.werken.forehead.Forehead.run(Forehead.java:551)
at com.werken.forehead.Forehead.main(Forehead.java:581)
========
I can provide more detailed inormation on request. Let me know if I should
split this into two tickets, since I have both:
- problem with deserialization of collections of beans
- viewing the actual AxisError that occurs outside of using debug
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]