J2ME-的WebService

时间:2011-06-23 10:23:42

标签: web-services exception soap java-me midlet

我正在研究J2ME-WEBSERVICES以通过SOAP协议从服务器获取信息。对于这项任务,我实际上经历了两种方式,

  1. i)首先使用elipse中的普通java类创建Web服务,然后为Web服务创建Client项目,然后创建存根和服务类。

    ii)然后我将war文件部署到tomcat服务器,我成功地使用了java类方法得到了正确的结果,

    iii)我在Android应用程序中使用的URL,使用KSOAP api应用程序正常工作,即使我在移动设备上测试过。

    iv)但是当我 在j2me-midlet中使用了相同的url 代码我写得像:

    SoapObject soap=new SoapObject(NAMESPACE,METHOD_NAME);
    soap.addProperty("barcode", barnum);
    HttpTransport se=new HttpTransport();
    se.setUrl(URL);
    se.setSoapAction(SOAP_ACTION);
    se.call(soap);
    

    但我得到了Nullpointer 指针处于异常时 SoapWriter.writeProperty()课程。

  2. 第二种方式是,

    i)我使用了存根和 服务类 WebserviceClient项目,我 在同一个包中创建了一个MIDlet (放置所有支持的jar文件 lib文件夹中的MIDlet)

    DBWEBSoapBindingStub stub=new DBWEBSoapBindingStub();
    DBWEBService service=(DBWEBService)stub;
    stub._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY, "URL of webservice at server");
    String result=stub.getBarcodeDetails(barcode);
    

    ii)我成功编译并且 预先验证,生成 我创建jar的类文件,以及何时 我在移动设备上部署应用 低于例外::

    • org.apache.axis.client.stub :的Noclassfound异常为此我将axis.jar文件放入应用程序jar文件中。但问题是当我部署到移动设备时,“jar文件是最大尺寸”问题(尺寸== 1.6MB)

    • 第二个异常是找不到javax.xml.rpc.Service类:如果我将jar文件放在我的应用程序jar文件中,它会给我一个例外:“无法在系统包中创建一个类”

  3. 所以请让我知道这个问题的解决方案,希望专家可以帮助我。

    提前谢谢

1 个答案:

答案 0 :(得分:1)

您需要找到与J2ME兼容的WSDL客户端库。 Eclipse向导使用的Axis库肯定不是。

我建议您使用可以自动为您创建客户端的Netbeans。请参阅此article