The Source for Java Technology Collaboration
User: Password:



Start New Message Delete Post a Reply

Article: 
 A Dive Into the Generated Client Code in Axis2
Subject:  exception while running the generated code
Date:  2006-10-18 00:02:50
From:  moizghori
Response to: exception while running the generated code


Ajith, as per your advice I setup the TcpMon and found this SOAP request/response but still I am not sure what is wrong with the code. I am doing all the process through Ant script which got generated by

WSDL2Java -uri currencyConvert.wsdl -g -ss -sd -d xmlbeans

I tried all the options of WSDL2Java but still I am having the same problem.


Thanks


<!-- REQUEST -->
<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header />
<soapenv:Body>
<conversionRequest xmlns="http://www.examplewebservice.com/types">
<fromCurrency xmlns="">USD</fromCurrency>
<toCurrency xmlns="">SLR</toCurrency>
<amount xmlns="">100.0</amount>
</conversionRequest>
</soapenv:Body>
</soapenv:Envelope>

<!-- RESPONSE -->
<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header />
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Client</faultcode>
<faultstring>Data binding error</faultstring>
<detail>
<Exception>
org.apache.axis2.AxisFault: Data binding error; nested exception is:
java.lang.RuntimeException: Data binding error
at org.apache.axis2.AxisFault.makeFault(AxisFault.java:318)
at org.apache.axis2.CurrencyConverterServiceMessageReceiverInOut.invokeBusinessLogic(CurrencyConverterServiceMessageReceiverInOut.java:66)
at org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.receive(AbstractInOutSyncMessageReceiver.java:37)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:454)
at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:284)
at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:136)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
Caused by: java.lang.RuntimeException: Data binding error
at org.apache.axis2.CurrencyConverterServiceMessageReceiverInOut.fromOM(CurrencyConverterServiceMessageReceiverInOut.java:146)
at org.apache.axis2.CurrencyConverterServiceMessageReceiverInOut.invokeBusinessLogic(CurrencyConverterServiceMessageReceiverInOut.java:50)
... 30 more
Caused by: java.lang.NullPointerException
at org.apache.xmlbeans.impl.store.Cur$CurLoadContext.attr(Cur.java:3041)
at org.apache.xmlbeans.impl.store.Cur$CurLoadContext.attr(Cur.java:3058)
at org.apache.xmlbeans.impl.store.Locale.doNamespaces(Locale.java:900)
at org.apache.xmlbeans.impl.store.Locale.loadXMLStreamReader(Locale.java:1135)
at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:843)
at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:826)
at org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:231)
at com.examplewebservice.www.types.ConversionRequestDocument$Factory.parse(ConversionRequestDocument.java:173)
at org.apache.axis2.CurrencyConverterServiceMessageReceiverInOut.fromOM(CurrencyConverterServiceMessageReceiverInOut.java:136)
... 31 more
</Exception>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>


//Client Code
import org.apache.axis2.CurrencyConverterServiceStub;
import com.examplewebservice.www.types.ConversionRequestDocument;
import com.examplewebservice.www.types.ConversionResponseDocument;

public class ConverterClient {

/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {

CurrencyConverterServiceStub stub = new CurrencyConverterServiceStub();
ConversionRequestDocument.ConversionRequest request = ConversionRequestDocument.ConversionRequest.Factory.newInstance();

//fill up the request object
request.setAmount(100f);
request.setFromCurrency("USD");
request.setToCurrency("SLR");

ConversionRequestDocument requestDoc =ConversionRequestDocument.Factory.newInstance();
requestDoc.setConversionRequest(request);
//call the method
ConversionResponseDocument response =stub.convert(requestDoc);



}

}


* CurrencyConverterServiceSkeleton.java
*
* This file was auto-generated from WSDL
* by the Apache Axis2 version: 1.0 May 05, 2006 (12:31:13 IST)
*/
package org.apache.axis2;
/**
* CurrencyConverterServiceSkeleton java skeleton for the axisService
*/
public class CurrencyConverterServiceSkeleton{


/**
* Auto generated method signature

* @param param0

*/
public com.examplewebservice.www.types.ConversionResponseDocument convert
(com.examplewebservice.www.types.ConversionRequestDocument param0 )

{
//Implementation
com.examplewebservice.www.types.ConversionResponseDocument res =
com.examplewebservice.www.types.ConversionResponseDocument.Factory.newInstance();
res.getConversionResponse().setAmount(param0.getConversionRequest().getAmount()*102.32f);
return res;
}

}

 Feed java.net RSS Feeds