博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webService-AXis2
阅读量:6083 次
发布时间:2019-06-20

本文共 3055 字,大约阅读时间需要 10 分钟。

首先使用AXis2 实现webService 需要两个资源:

1.myEclipse 6.5 实现服务器端的插件  http://download.csdn.net/detail/u014104269/9027031
2. axis2.war :用于将WebService发布到Web容器中。http://download.csdn.net/detail/u014104269/9028309

步骤一:

1.中的两个插件,都是已经修改过名字的,如果没有,请将下载的axis2-eclipse-codegen-wizard.zip 和 axis2-eclipse-service-archiver-wizard.zip  压缩文件里的Axis2_Codegen_Wizard和 Axis_Service_Archiver-wizard文件夹,解压缩到C:\Program   Files\MyEclipse 6.5\eclipse\plugins目录下。 

将刚刚解压缩的Axis2_Codegen_Wizard文件夹重命名为 org.apache.axis2.tool.codegen.eclipse.plugin.CodegenWizardPlugin , 而Axis_Service_Archiver-wizard文件夹重命名为 

org.apache.axis2.tool.Axis_Service_Archiver_1.3.0 在C:\Program Files\MyEclipse 6.5\eclipse\links目录下新建文件名  为:axis-eclipse-plugin.link  内容为: path=C:/Program Files/MyEclipse 6.5/eclipse/plugins   重新启动myeclipse,在file->new->other中可看到Axis2 Wizards,axis2插件安装成功。

(本例使用myEclipse 6.5 开发,如果更高版本的话,配置插件更容易)

步骤二:

将2.中的axis2放到Tomcat下的webapps ,启动服务,axis2.war会解压。

 接下来可以配置自己的项目了:

创建项目-

package ws;public class TestWs {    public String showName(String name) {        return name;    }    public String getName() {        return "cys"; } }

然后 Export ,将项目导出为text.jar,然后在项目上右键,找到New-》other-》Axis2 Service Archiver 将项目导出生成 .aar

文件 ,然后将该.aar 文件放在Tomcat下 Tomcat 5.5\webapps\axis2\WEB-INF\services 目录中。

其余配置较麻烦。容易出错,给一个我已经弄好的Helloworld  http://download.csdn.net/detail/u014104269/9028511

启动服务:

    1.http://localhost:8080/axis2/services/HelloService/getName 

    2.http://localhost:8080/axis2/services/HelloService/showName?name=cys

  就可以了。

  还可以使用.class 文件发布,只需要把编译好的.class 文件放在Tomcat下 Tomcat 5.5\webapps\axis2\WEB-INF\pojo 目录中。

如果没有pojo目录自己创建一下就好了。

下面是我的 client端代码:

package ws;import javax.xml.namespace.QName;import org.apache.axis2.addressing.EndpointReference;import org.apache.axis2.client.Options;import org.apache.axis2.rpc.client.RPCServiceClient;public class RPCClient { public static void main(String[] args) throws Exception { // 使用RPC方式调用WebService RPCServiceClient serviceClient = new RPCServiceClient(); Options options = serviceClient.getOptions(); // 指定调用WebService的URL EndpointReference targetEPR = new EndpointReference( "http://localhost:8081/axis2/services/MyService"); options.setTo(targetEPR); // 指定getGreeting方法的参数值 Object[] opAddEntryArgs = new Object[] {"超人"}; // 指定getGreeting方法返回值的数据类型的Class对象 Class[] classes = new Class[] {String.class}; // 指定要调用的getGreeting方法及WSDL文件的命名空间 QName opAddEntry = new QName("http://ws", "showName"); // 调用getGreeting方法并输出该方法的返回值 System.out.println(serviceClient.invokeBlocking(opAddEntry, opAddEntryArgs, classes)[0]); // 下面是调用getPrice方法的代码,这些代码与调用getGreeting方法的代码类似 classes = new Class[] {String.class}; opAddEntry = new QName("http://ws", "getName"); System.out.println(serviceClient.invokeBlocking(opAddEntry, new Object[]{}, classes)[0]); /*在本例中使用了RPCServiceClient类的invokeBlocking方法调用了WebService中的方法。 * invokeBlocking方法有三个参数,其中第一个参数的类型是QName对象,表示要调用的方法名; * 第二个参数表示要调用的WebService方法的参数值,参数类型为Object[]; * 第三个参数表示WebService方法的返回值类型的Class对象,参数类型为Class[]。 * 当方法没有参数时,invokeBlocking方法的第二个参数值不能是null,而要使用new Object[]{}。 * */ } }

 

 

转载于:https://www.cnblogs.com/caoyusongnet/p/AXIS2.html

你可能感兴趣的文章
android下载封装类
查看>>
[node] 用 node-webkit 开发桌面应用
查看>>
Nginx访问控制和虚拟主机
查看>>
report widget not working for external users
查看>>
windows phone 摄像头得到图片是旋转90°
查看>>
Linux--sed使用
查看>>
没有显示器的情况下安装和使用树莓派
查看>>
Q85 最大矩形
查看>>
【android】使用handler更新UI
查看>>
mochiweb 源码阅读(十五)
查看>>
前端面试中的常见的算法问题
查看>>
计算机语言的基本理论
查看>>
nodejs流之行读取器例子
查看>>
批量文件重命名工具
查看>>
简单说一下UWP中的JumpList
查看>>
unity将object[]或者string对象转换成枚举enum
查看>>
PostgreSQL 10.1 手册_部分 II. SQL 语言_第 9 章 函数和操作符_9.19. 范围函数和操作符...
查看>>
以太坊系列之六: p2p模块--以太坊源码学习
查看>>
使用scikit-learn解决文本多分类问题(附python演练)
查看>>
2018 年最值得关注的 JavaScript 趋势
查看>>