WebService(Delphi)+J2ME,倾囊求教! ( 积分: 200 )

  • 主题发起人 主题发起人 sailsoft
  • 开始时间 开始时间
S

sailsoft

Unregistered / Unconfirmed
GUEST, unregistred user!
最近升级原有系统,想将移动应用集成,遇到很大困难,在网上搜索WebService(Delphi)+J2ME这类资源,发现这方面的文章或案例太少,在此请高手赐教。

我目前用的环境:
服务器端WebService开发采用:Delphi 7.0
移动终端开发采用:J2ME Wireless Toolkit 2.2 + Eclipse 3.1
 
最近升级原有系统,想将移动应用集成,遇到很大困难,在网上搜索WebService(Delphi)+J2ME这类资源,发现这方面的文章或案例太少,在此请高手赐教。

我目前用的环境:
服务器端WebService开发采用:Delphi 7.0
移动终端开发采用:J2ME Wireless Toolkit 2.2 + Eclipse 3.1
 
对服务器端WebService开发采用:Delphi 7.0
还比较熟悉,有问题可以讨论讨论..

对移动终端开发采用:J2ME Wireless Toolkit 2.2 + Eclipse 3.1
就不懂了...
 
to delnew:
参考fosux的“在J2ME中访问dotnet Web Service”一文:
http://www.j2medev.com/Article/ShowArticle.asp?ArticleID=186
现在我用的是delphi7 Web Service :),可惜不成功,错误信息如下:
Running with storage root DefaultColorPhone
Uncaught exception java/lang/OutOfMemoryError.
Execution completed.
749506 bytecodes executed
16 thread switches
743 classes in the system (including system classes)
4739 dynamic objects allocated (589168 bytes)
7 garbage collections (578340 bytes collected)
 
你这个错误信息,并不代表你delphi7编写的webservice有问题

你先用delphi编写一个简单的客户端调用测试一下,如果测试成功那就是你移动终端编写的有问题了.
 
问题是出在移动终端程序上,我写的测试代码如下:
import java.rmi.RemoteException;

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Item;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.xml.rpc.Stub;

import LearnTra.IHi_Stub;


public class Learn extends MIDlet {
private
String serviceURL = "http://localhost/mdl/prjhi.dll/soap/ihi";
IHi_Stub hisv;
Form form;

public Learn() {
super();
}

protected void startApp() throws MIDletStateChangeException {
hisv = new IHi_Stub();
hisv._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY,
serviceURL);
hisv._setProperty(Stub.SESSION_MAINTAIN_PROPERTY, new
Boolean(true));
form = new Form("Hello World");
Display.getDisplay(this).setCurrent(form);;
Thread th = new Thread(new GetEmpInfoTask());
th.start();
}

protected void pauseApp() {
// TODO Auto-generated method stub

}

protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub

}

public class GetEmpInfoTask implements Runnable {
public void run() {
String str="";
form.append("初始...");
try {
str=hisv.getHi(0);
} catch (RemoteException e) {
str="RemoteException";
} catch (Exception e) {
str="Exception";
}
form.append("Result:" + str);
}
}
}
 
很奇怪,楼主发恶意广告,居然没进黑名单[:(!]
 
http://forum.java.sun.com/thread.jspa?threadID=616158&tstart=45
原因可能是:
因为J2ME对WebService的支持符合JSR-172规范,而该规范只接受document/literall类型的web service;Delphi7生成的WebService程序提供的服务是RPC/encoded方式,问题就明显了,可是怎么解决呢?
 
郁闷中[:(]。。。SOS
 
www.xmethods.com 上,几乎所有用.Net写的WebService只支持DOC方式、Delphi写的只支持RPC方式;J2ME目前对Web Service的支持仅限于RFC172,而RFC172要求必须为DOC方式(sun怎么偏袒MS?)!
My God,我要做的事情就只能是等待J2ME发展到对Web Service的支持足够强大吗?:~(
 
现象就是在用WTK22的Stub Generator产生Stub文件时出现了错误:
Operation GetHi is of the wrong encoding SOAP style/use (rpc/encoded). Document/literal only. Skipping generation of operation.

哪位大侠做过WebService(Delphi7) + J2ME吗?SOS
 
开发WebService不想脱离Delphi7,能否修改并重编译soaprtl.bpl以使其符合JSR-172?这办法行得通吗?
 
用KSOAP试试[:(]
 
从移动终端(手机、PDA、嵌入式设备)访问WebService服务器试验总结:
Server Client Result
Delphi7 SOAP J2ME+KSOAP1.2 Success [:)]
Delphi7 SOAP WTK2.2 Failure (期望WTK的后续版本能兼容RPC)
 
TO:sailsoft
没收到你的程序,请重新发一次zouyang2000@hotmail.com谢谢
如果程序有注解的话,可以再加50分.
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部