我正在研究J2ME-WEBSERVICES以通过SOAP协议从服务器获取信息。对于这项任务,我实际上经历了两种方式,
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()
课程。
第二种方式是,
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文件中,它会给我一个例外:“无法在系统包中创建一个类”
所以请让我知道这个问题的解决方案,希望专家可以帮助我。
提前谢谢
答案 0 :(得分:1)
您需要找到与J2ME兼容的WSDL客户端库。 Eclipse向导使用的Axis库肯定不是。
我建议您使用可以自动为您创建客户端的Netbeans。请参阅此article。