J2ME与Web Service-KSOAP快速上手 |
| 作者:陈万飞 来源:SUN 发布时间:2005-8-10 12:07:04 |
|
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/servlet/AxisServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>SOAPMonitorService</servlet-name>
<url-pattern>/SOAPMonitor</url-pattern>
</servlet-mapping>
<!-- uncomment this if you want the admin servlet -->
<!--
<servlet-mapping>
<servlet-name>AdminServlet</servlet-name>
<url-pattern>/servlet/AdminServlet</url-pattern>
</servlet-mapping>
-->
<!-- currently the W3C havent settled on a media type for WSDL;
http://www.w3.org/TR/2003/WD-wsdl12-20030303/#ietf-draft
for now we go with the basic 'it's XML' response -->
<mime-mapping>
<extension>wsdl</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
<mime-mapping>
<extension>xsd</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
</web-app>
5.开启你的application server,把目录jagiews发布为一个名叫jagiews的web application。 6.测试:打开浏览器,输入网址(这里使用的是weblogic,其他的服务器请酌情修改): http://localhost:7001/jagiews/services/StringProcess?method=process&name=qqqq,如果浏览器能在返回的xml文档中显示字符串"QQQQ",恭喜你,你的web service发布成功了。如果发布不成功,请按以上发布步骤检查一下。 2. 客户端 客户端自然是用MIDlet了,不过用什么方式来访问web service呢?其实有3种访问方式
这里讲述第三种方式。使用之前,你需要从 http://ksoap.enhydra.org/software/downloads/index.html下载稳定的ksoap包,置于你的classpath中。 2.1 客户端源代码 2.1.1 WSClientMIDlet.java package com.jagie.j2me.ws;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class WSClientMIDlet
extends MIDlet {
static WSClientMIDlet instance;
public WSClientMIDlet() {
instance = this;
}
public void startApp() {
Display display=Display.getDisplay(this);
DisplayForm displayable = new DisplayForm();
display.setCurrent(displayable);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public static void quitApp() {
instance.destroyApp(true);
instance.notifyDestroyed();
instance = null;
}
}
2.1.2 DisplayForm.java package com.jagie.j2me.ws;
import javax.microedition.lcdui.*;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class DisplayForm
extends Form
implements CommandListener, Runnable {
private TextField textField1;
private Thread t;
public DisplayForm() {
super("字符转换webservice测试");
try {
jbInit();
}
catch (Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
// Set up this Displayable to listen to command events
textField1 = new TextField("", "", 15, TextField.ANY);
this.setCommandListener(this);
textField1.setLabel("待处理的字符串是:");
textField1.setConstraints(TextField.ANY);
textField1.setInitialInputMode("Tester");
setCommandListener(this);
// add the Exit command
addCommand(new Command("Exit", Command.EXIT, 1));
addCommand(new Command("Process", Command.OK, 1));
this.append(textField1);
}
public void commandAction(Command command, Displayable displayable) {
if (command.getCommandType() == Command.EXIT) {
WSClientMIDlet.quitApp();
}
else if (command.getCommandType() == Command.OK) {
t = new Thread(this);
t.start();
}
}
public void run() {
String s1 = textField1.getString();
String s2 = new StringProcessorStub().process(s1);
StringItem resultItem = new StringItem("处理后的字符串是:", s2);
this.append(resultItem);
}
}
2.1.3 StringProcessorStub.java package com.jagie.j2me.ws;
import org.ksoap.*;
import org.ksoap.transport.HttpTransport;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class StringProcessorStub {
public StringProcessorStub() {
}
public String process(String name) {
String result = null;
try {
SoapOb |
| [] [返回上一页] [打 印] |
|
文章评论 |
