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.&lt;init&gt;(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)