<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种访问方式
直接用HttpConnection访问 http://localhost:7001/jagiews/services/StringProcess?method=process&name=qqqq,得到xml的返回数据,然后用kxml(http://kxml.enhydra.org/)解析,得到返回值。
如果你的手机支持MIDP2.0的话,可以考虑使用JSR172。
用ksoap api。
这里讲述第三种方式。使用之前,你需要从 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();
}
}