webservice手册之服务端.docx
《webservice手册之服务端.docx》由会员分享,可在线阅读,更多相关《webservice手册之服务端.docx(13页珍藏版)》请在冰豆网上搜索。
![webservice手册之服务端.docx](https://file1.bdocx.com/fileroot1/2022-11/26/727aae2d-b914-43b9-b5bf-b25556dfa3cf/727aae2d-b914-43b9-b5bf-b25556dfa3cf1.gif)
webservice手册之服务端
举个例子(源代码在最后面):
创建一个简单的webservice,根据传入userid的,返回username
首先配置axis2的运行环境
注:
生成代码最好在一个新的工程里,因为生成时会自动导一些包,如果工程是自动编译的话,这会使整个工程自动编译,浪费时间
第一步:
新建一个WSDL文件
Next
选择目录(WSDL文件生成位置)
输入文件名
Next
目标命名空间:
http:
//包名倒序/服务名
Finish
第二步:
打开刚才建好的WSDL文件,进入Design模式,进行修改
修改接口方法:
暂为query(可以自己取)参数:
Stringuserid,返回值Stringusername
点击input[这是方法参数]和output[返回值]后面的箭头,可以看到参数,可以新增删除
第三步:
生成服务端代码
定义好WSDL文件后,在Eclipse里面右键选择该文件
点击WebServices>GenerateJavabeanskeleton
注意上图红框
Next
上面有个Generateaninterfacefortheskeleton.这个是可选的,目前我们BillSys里面有的选了有的没选.如果选了会生成一个接口,这样自己的业务类实现此接口即可,如果不选就继承此Sleleton类
Finish.
生成了以下几个文件:
第四步:
写自己的处理类
然后写一个继承MyWebserviceSkeleton父类的子类MyWebservice
重载你刚才定义的query方法
publicclassMyWebserviceextendsMyWebserviceSkeleton{
@Override
publicQueryResponsequery(Queryquery){
//在此方法定义逻辑处理
Stringuserid=query.getUserid();
QueryResponsers=newQueryResponse();
if("admin".equals(userid)){
rs.setUsername("administrator");
}else{
rs.setUsername("operator");
}
returnrs;
}
}
第五步:
至此,webservice服务端定义完毕,最后是部署此webservice
在WEB-INF\services\下建一个文件夹MyWebservice目录结构如下:
Service内容:
xmlversion="1.0"encoding="UTF-8"?
>
//www.w3.org/ns/wsdl/in-out"class="com.huateng.webservice.mywebservice.MyWebserviceMessageReceiverInOut"/>
com.huateng.webservice.mywebservice.MyWebservice
true
true
//www.w3.org/ns/wsdl/in-out"namespace="
还有一个关键是web.xml文件,要加入以下内容
AxisServlet
org.apache.axis2.transport.http.AxisServlet
AxisAdminServlet
org.apache.axis2.transport.http.AxisAdminServlet
100
AxisServlet
/servlet/AxisServlet
AxisServlet
*.jws
AxisServlet
/services/*
AxisAdminServlet
/axis2-admin/*
可以启动程序了~!
最后就可以测试一下这个例子了:
在IE里直接输入:
http:
//127.0.0.1:
8020/BillSys/services/MyWebservice?
wsdl
在工程里找到WSDL文件,右键
点击左窗体右上的橡皮擦,[红色标记]
输入WSDL的URL,点击GO按钮
点击query超链
在上图右边输入admin或其它,测试结果会在右下窗体里显示