You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by David Ling <go...@hotmail.com> on 2002/09/21 04:06:50 UTC
deserialization PROBLEM
HI:
I just write a program following the sample - encoding, but it dosen't
work.
-----------------------------------------------------------------------
class TaskBroker{
static class Task{
public Integer taskType;
public String taskName;
public Integer taskCost;
static final int CO = 0;
static final int NC = 1;
public int GetCost(){
return taskCost.intValue();
}
public boolean IsCooperativeWork(){
return (taskType.intValue() == CO);
}
public boolean IsNotCooperativeWork(){
return (taskType.intValue() == NC);
}
}
static class Person{
public String personName;
public Integer personMoney;
public String toString()
{
return getStringVal("", this);
}
public String getStringVal(String indent, Person topLevel)
{
String ret = "\n" + indent + "Person:\n";
ret += indent + " Name [" + personName + "]\n";
ret += indent + " Money ["+ personMoney+"]\n";
return ret;
}
}
public Task taskMember = new Task();
public Person personMember= new Person();
}
-------------------------------------------------------------------------
I also write the serialization&deserialization for the class Task and
Person. when I test Task and Person, they work well.
But when I test the TaskBroker, get something wrong:
------------------------------------------------------
Serialized msg:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmln
s:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSc
hema-instance">
<soapenv:Body>
<ns1:method1 xmlns:ns1="urn:myNamespace">
<ns1:myParam xsi:type="xsd:string">this is a string</ns1:myParam>
<struct href="#id0"/>
</ns1:method1>
<multiRef id="id0" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmls
oap.org/soap/encoding/" xsi:type="ns2:TaskBroker"
xmlns:soapenc="http://schemas.
xmlsoap.org/soap/encoding/" xmlns:ns2="typeNS">
<taskMember href="#id1"/>
<personMember href="#id2"/>
</multiRef>
<multiRef id="id2" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmls
oap.org/soap/encoding/" xsi:type="xsd:anyType"
xmlns:soapenc="http://schemas.xml
soap.org/soap/encoding/">
Person:
Name [null]
Money [null]
</multiRef>
<multiRef id="id1" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmls
oap.org/soap/encoding/" xsi:type="xsd:anyType"
xmlns:soapenc="http://schemas.xml
soap.org/soap/encoding/">TaskBroker$Task@39b538</multiRef>
</soapenv:Body>
</soapenv:Envelope>
Testing deserialization...
java.lang.NullPointerException
at TaskBrokerDeser.onStartChild(TaskBrokerDeser.java:72)
at
org.apache.axis.encoding.DeserializationContextImpl.startElement(Dese
rializationContextImpl.java:883)
at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.ja
va:158)
at
org.apache.axis.message.MessageElement.publishToHandler(MessageElemen
t.java:681)
at
org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerIm
pl.java:369)
at
org.apache.axis.encoding.DeserializationContextImpl.startElement(Dese
rializationContextImpl.java:896)
at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.ja
va:158)
at
org.apache.axis.message.MessageElement.publishToHandler(MessageElemen
t.java:681)
at
org.apache.axis.message.RPCElement.deserialize(RPCElement.java:244)
at org.apache.axis.message.RPCElement.getParam(RPCElement.java:253)
at TestTaskBroker.main(TestTaskBroker.java:86)
-------------------------------------------------------------------------
So any one can give me an example of how to write the inner class
deserialization?
Thanks!!
:)
_________________________________________________________________
Chat with friends online, try MSN Messenger: http://messenger.msn.com
(sorry)URGENT: NullPointerException arrived
Posted by Gionata Gelati <ge...@sparc20.ing.unimo.it>.
Hi,
yesterday I was deploying my sercei, I tested it and everything was
fine. Changed port to tomcat for internal reasons, got the wsdl fiule of
my webservice, got the client stubs using the WSDL2Java
emitter. problem: i can bind to the service, but when the object providing
the service is not instatiated and when the client gets to call the remote
method of the service I get the following:
WrapperClient: trying to bind...
WrapperClient: binded!!
- Mapping Exception to AxisFault
AxisFault
faultCode: {http://xml.apache.org/axis/}Server.userException
faultString: java.lang.NullPointerException
faultActor: null
faultDetail:
stackTrace: java.lang.NullPointerException
at
it.unimo.dbgroup.momis.wrappers.WrapperRSCore.<init>(WrapperRS
ore.java:40)
at
it.unimo.dbgroup.momis.wrappers.WSDLWrapperRS.openResultSet(WSDLWrap
erRS.java:43)
at
it.unimo.dbgroup.momis.wrappers.WSDLWrapper.wsdlRunQuery(WSDLWrapper
java:73)
at java.lang.reflect.Method.invoke(Native Method)
at
org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.
ava:308)
at
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvide
.java:240)
at
org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java
289)
at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrate
y.java:71)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:312)
at
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:5
7)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(App
icationFilterChain.java:247)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(Application
ilterChain.java:193)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapper
alve.java:260)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveConte
t.invokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.ja
a:480)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContext
alve.java:191)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveConte
t.invokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.ja
a:480)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995
at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java
2397)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.
ava:180)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveConte
t.invokeNext(StandardPipeline.java:643)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatch
rValve.java:170)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveConte
t.invokeNext(StandardPipeline.java:641)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.
ava:171)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveConte
t.invokeNext(StandardPipeline.java:641)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.ja
a:480)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVa
ve.java:174)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveConte
t.invokeNext(StandardPipeline.java:643)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.ja
a:480)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995
at
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:2
3)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.jav
:405)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proc
ssConnection(Http11Protocol.java:380)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.jav
:508)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(Thread
ool.java:533)
at java.lang.Thread.run(Thread.java:484)
java.lang.NullPointerException
at
org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder
java:135)
at
org.apache.axis.encoding.DeserializationContextImpl.endElement(Deser
alizationContextImpl.java:904)
at
org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1528)