1. 开发背景: 博主没有正规系统的学习过webservice也不了解大型互联网公司webservice是如何使用的. 而本文是作者自己在自己所在单位看项目和从网上学习资料亲自搭建并且实际访问通过测试.
本文是基于axis2搭建的webservice服务接口. (javaweb项目,只用和Struts2框架),最后有代码下载链接可以参考
(1)首先需要了解什么是axis2?
Axis2是WebService的框架。是Axis1.x的替代品。简单的理解:axis2实现了WebService。然后你可以在tomcat或者是Jetty上部署用Axis2实现的WebService程序。
配置过程如下:
2. eclipse创建一个javaweb项目,本文只做简单演示,所以只用Struts2框架即可,下载Struts2所需jar包,如图:
3. 到官网, 下载axis2所需jar包,添加到项目lib目录下, 官网地址:http://axis.apache.org/axis2/java/core/download.cgi
3.1 下载最新版本即可,下载文件lib目录下为全部的jar,但根据项目实际只需要部分即可
3.2 所需jar包目录如下所示:
4. 将上述jar包添加到项目中,在web.xml中添加webservice配置, 如图所示:
AxisServlet
Apache-Axis Servlet
org.apache.axis.transport.http.AxisServlet
AdminServlet
Axis Admin Servlet
org.apache.axis.transport.http.AdminServlet
SOAPMonitorService
SOAPMonitorService
org.apache.axis.monitor.SOAPMonitorService
SOAPMonitorPort
5001
100
AxisServlet
/servlet/AxisServlet
AxisServlet
*.jws
AxisServlet
/services/*
SOAPMonitorService
/SOAPMonitor
5. 新建webservice服务端接口以及客户端测试类
5.1 服务接口
5.2 客户端测试类
6 在目录为\WebRoot\WEB-INF\下, 新建文件命名server-config.wsdd, 发布服务名入股所示:
7. 测试 启动tomcat 打开浏览器 输入 http://localhost:8080/webservice/services/ServiceImpl?wsdl
注意: 浏览器最后面的ServiceImpl 就是 server-config.wsdd文件中发布的服务名,两者必须一致
如果出现如下图所示的xml格式的内容,说明webservice服务发表成功
8. 最后 在客户端测试类中进行测试
8.1客户端控制台(Run As ---> Java Application):
package com.webservice.client;
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
/**
* webservice客户端测试代码
* @author zhaojp
* @date 2017-8-28
*/
public class TestClient {
public static void main(String[] args) {
Service service = new Service();
try{
Call call = (Call)service.createCall();
//设置地址
call.setTargetEndpointAddress(
new java.net.URL("http://localhost:8080/webservice/services/ServiceImpl?wsdl"));
//设置要执行的方法
call.setOperationName(
new QName("http://com.webservice.impl.WebSercviceImpl","helloService"));
//设置参数
call.addParameter("str",org.apache.axis.Constants.XSD_STRING ,
javax.xml.rpc.ParameterMode.IN);
//设置返回类型
call.setReturnType(org.apache.axis.Constants.XSD_STRING);
String str = "欢迎来到webservice的世界";
//执行webService
Object result = call.invoke(new Object[]{str});
System.out.println("返回的结果是:" + result.toString());
}catch(Exception e){
e.printStackTrace();
}
}
}
8.2服务端控制台:
OK 测试通过
9. 代码下载链接: http://download.csdn.net/download/qiaoshunho/9953785