在一个成熟的web系统上增加webservice接口,主要是查询方面的应用。webservice作为一个比较火的技术,相关的概念介绍网上已经很多,这里不再赘述。我只举个例子说明它的用途:假设你要从自己的网站上通过输入名字查询别人论坛上的用户列表,如果你的网站没有相关的资料及数据库,那在原来是不可能的。而现在有了webservice,别人可以从他的论坛提供接口,只要你通过soap协议连接上接口。通过方法名及参数,就可以很轻松的获取列表。换言之,webservice的作用就是使internet上的各个网站不再各自为战,不再是孤岛。
接下来说说我的开发过程。
开发工具是jbuilder2005,我想jbuilder的前几个版本应该大同小异。
通过jbuilder导航条上的file|new打开object gallery窗口,在窗口左边选择web services,接着在窗口右边选择axis web services server configuration,点击ok,会出现如下所示界面:

这里是让你选择一个带web-inf目录的web module,如果没有这个目录,则选择new新建一个。我这里已经有了root目录。接下来点击next,勾选create runtime……选择finish,至此webservice框架完成。jbuilder会自动生成一个apache axis toolkit页面。
接下来建立类作为webservice接口,,例如我建立了一个webservice类:
import java.sql.*;
import java.util.*;
import org.jdom.*;
import com.hcinfo.egov.newui.dbconnection;
import javax.servlet.http.httpsession;
import javax.xml.rpc.server.servletendpointcontext;
import com.hcinfo.egov.webservice.*;
public class webservice {
dbconnection dbtool = new dbconnection();
statement stmnt = dbtool.stmnt;
static map usermap = new hashmap();
public string login(string username, string userpassword) throws sqlexception {
string outxml = "<?xml version=/"1.0/" encoding=/"gb2312/"?>";
outxml += "<webresponse>";
outxml += "<method>login</method>";
resultset rs = null;
string sql = "省略……";
rs = stmnt.executequery(sql);
if (rs.next()) {
randomguid rg = new randomguid();
string sesseionid = rg.tostring();
string userid = rs.getstring("id");
outxml += "<result><code>0</code><message>成功</message><userid>" + userid +
"</userid>";
outxml += "<sessionid>" + sesseionid +
"</sessionid></result></webresponse>";
usermap.put(userid, sesseionid);
}
else {
outxml +=
"<result><code>1</code><message>登陆失败,请检查用户名和密码</message><userid></userid>";
outxml += "<sessionid></sessionid></result></webresponse>";
}
return outxml;
}
类建立好之后,在toolkit的web services desiner中选择create service|java service,在生成的图表中进行配置,如图:
如此,你的webservice接口就建立了,接下来运行服务,会自动生成wsdl文件。再接着就是客户端的开发了。
闽公网安备 35060202000074号