java 基于axis2在eclipse 下自动生成webservice:
1.环境准备
下载axis2
http://apache.dataguru.cn/axis/axis2/java/core/1.6.2/
(图一)
其中axis2-1.6.2-bin.zip 中有axis2 所需jar 文件
axis2-eclipse-codegen-plugin-1.6.2.zip和axis2-eclipse-service-plugin-1.6.2.zip 为eclipse自动生成axis2 webservic 的插件
1.1.将axis2-eclipse-codegen-plugin-1.6.2.zip和axis2-eclipse-service-plugin-1.6.2.zip解压后放到eclipse 安装目录的plugins目录中,重启eclipse ,在eclipse 中右键新建中有如下选项则插件安装成功。(图二)
(图二)
2.在eclipse 中创建项目:选择如下(图三、图四)
(图三)
(图四)
3.将解压后的axis2-1.6.2-war.zip文件web-info目录下的conf、modules、services文件放到项目的web-info目录下,并根据web.xml修改新建项目的web.xml目录:(可以直接将内容拷贝到自己的目录)
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="" xmlns="" xsi:schemaLocation=" " id="WebApp_ID" version="2.5">
<display-name>T_WebService</display-name>
<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
4.将axis2-1.6.2-bin.zip解压并将解压后的lib目录复制到项目lib 目录下(可根据自己需求选择性复制)
5.右键项目选择new--->outher 选择Axis2 Service Archiver 找到项目的classes文件路径下一步
下一步
下一步
下一步
下一步定义service name 输入自己的类包名和类名 点击load 如下:
下一步
下一步, 出现如下界面即为完成点击fish
在eclipse刷新项目,在项目services 目录下就看到了自己创建的服务文件;
客户端文件创建:
右键项目-->Axis2 Code Generator 点击Next
看到如下界面继续下一步
输入包名和类名加载classes 加入classes 文件路径点击loading 如果提示successful 点击Next
出现如下界面,以下内容可以根据实际需求修改,我选择的是默认然后点Next
选择services.wsdl 文件的输出路径 Next
出现如下如下界面即为成功
测试,将服务发布到tomcat 运行 ,在浏览器输入地址:http://localhost:8088/T_WebService/services/service_test?wsdl 正常显示如下:
java代码调用例子:
package com.wsclient.demo;
import javax.xml.namespace.QName;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;
public class TestClient {
public static void main(String[] args) throws AxisFault {
RPCServiceClient sc = new RPCServiceClient();
Options options = sc.getOptions();
EndpointReference endre = new EndpointReference(
options.setTo(endre);
Object[] addArgs = new Object[]{"xiao zhang "};//参数值
Class<?>[] classes = new Class<?>[]{String.class}; //返回值类型
QName q = new QName("); //命名空间和方法名称
Object returnValue = sc.invokeBlocking(q, addArgs,classes)[0];
System.out.println("------"+returnValue);
}
}
输出如下结果
以上就是基于axis2 的webservice 在eclipse 中的生成步骤