Hi all,
I'm trying to get a web service example working with Axis2 1.0 and
kSoap2 for a J2ME client. The J2ME ought to connect sending a string and
get a custom object beering a string as response. The example was
originally meant for Axis1 so I wrote an services.xml on my own. I'm
using a local Tomcat 5.5.17 and Sun wireless toolkit 2.3 and connect to
the webservice locally via that emulator. For the deployment I copied
the jar into Axis services directory.
The point is that I keep getting nullpointer exceptions despite googling
since 2 days :( Did not find that much documentation. Below you find all
files and the error message catched by SOAPMonitor.
Thanks for any hints,
Benjamin
SERVER SIDE:
AxisService.java:
package myService;
public class AxisService {
public CustomObject getObject(String value){
CustomObject ret = new CustomObject();
ret.setValue("Hello World "+value);
return ret;
} }
---
CustomObject.java:
package myService;
public class CustomObject {
public CustomObject(){}
private String value;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}}
---
SERVICES.XML
<service name="AxisService">
<parameter name="ServiceClass"
locked="false">myService.AxisService</parameter>
<operation name="getObject">
<messageReceiver
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
<parameter name="value" locked="false">value</parameter>
</operation>
</service>
---
CLIENT SIDE: J2ME Code:
(the client has also a package myService with CustomObject in it.)
-snip- //command to send pressed
if (c == getCommand) {
final TextBox t = new TextBox("", "", 256, 0);
Thread thr = new Thread(){
public void run() {
try {
SoapObject so = new
SoapObject("","getObject");
so.addProperty("value","ASDSAD");
SoapSerializationEnvelope envelope = new
SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut = so;
HttpTransport ht = new
HttpTransport("http://localhost:8080/axis2/services/AxisService");
ht.call("", envelope);
SoapObject ret = new SoapObject("","CustomObject");
ret =(SoapObject)envelope.getResponse();
System.out.println(ret.getProperty(0).toString());
t.setString(ret.getProperty(0).toString());
}
catch ( SoapFault sf){
String faultString = "Code: " + sf.faultcode + "\nString:
" + sf.faultstring;
t.setString(faultString);
}
catch ( Exception e){
e.printStackTrace();
t.setString(e.getMessage());
}
----
This is the SOAP REQUEST from SOAPMonitor
<?xml version='1.0' encoding='utf-8'?>
<v:Envelope xmlns:v="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:d="http://www.w3.org/2001/XMLSchema"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns:c="http://schemas.xmlsoap.org/soap/encoding/">
<v:Header />
<v:Body>
<getObject c:root="1" id="o0">
<value i:type="d:string">ASDSAD</value>
</getObject>
</v:Body>
</v:Envelope>
----
That's the SOAP 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>
null; nested exception is:
java.lang.NullPointerException
</faultstring>
<detail>
<Exception>
org.apache.axis2.AxisFault: null; nested exception is:
java.lang.NullPointerException
at org.apache.axis2.AxisFault.makeFault(AxisFault.java:318)
at
org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:136)
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:252)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at
org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:89)
... 20 more
</Exception>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]