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&#13;
        at org.apache.axis2.AxisFault.makeFault(AxisFault.java:318)&#13;
at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:136)&#13; at org.apache.axis2.receivers.AbstractInOutSyncMessageReceiver.receive(AbstractInOutSyncMessageReceiver.java:37)&#13; at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:454)&#13; at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:284)&#13; at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:136)&#13; at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)&#13; at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)&#13; at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)&#13; at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)&#13; at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)&#13; at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)&#13; at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)&#13; at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)&#13; at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)&#13; at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)&#13; at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)&#13; at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)&#13; at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)&#13; at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)&#13; at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)&#13;
        at java.lang.Thread.run(Unknown Source)&#13;
        Caused by: java.lang.NullPointerException&#13;
at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:89)&#13;
        ... 20 more&#13;
      </Exception>
    </detail>
  </soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to