- 浏览: 134990 次
文章分类
最新评论
参考网上的相关例子,来进行准备以及后续的开发工作。
一. 下载axis2-1.5.3-war.zip中的axis2.war这个文件放在tomcat目录下,启动tomcat就会把war文件转成一个可以跑起来的axis2的项目。
之后的相关准备工作都是在这个包得基础之上进行开发与测试的。
二. 以下就可以进行简单例子的开发。
1. 进行服务端的开发:
- public class WebServiceTest {
- public int add(int a,int b) {
- return a + b;
- }
- public User getUser(String name) {
- User user = new User();
- user.setUsername(name);
- return user;
- }
- }
public class WebServiceTest { public int add(int a,int b) { return a + b; } public User getUser(String name) { User user = new User(); user.setUsername(name); return user; } }
注意,上面的WebServiceTest是没有package的。Copy这个类的class文件,放到tomcat目录下的webapps的axis2的WEB-INF目录的pojo文件夹下。
如果没有pojo这个目录就手动创建一个一个文件夹。然后在浏览器输入:http://localhost:8080/axis2/
点击Services的链接就可以看到刚才手动发布的WebServiceTest了,或者是浏览器地址栏输入:http://localhost:8080/axis2/services/listServices
你就可以看到你刚才粘贴过去的这个WebService了。
点击链接就可以看到wsdl文件的内容了。内容很多,如果你看过axis1.x的介绍就知道wsdl文件的大致结构了。
2. 测试这个webService的方法
复制上面的WebServiceTest的链接地址,然后带上方法名称和参数值即可测试调用是否成功。如下:
http://localhost:8080/axis2/services/WebServiceTest/sayHello?name=jack
http://localhost:8080/axis2/services/WebServiceTest这个是WebService的地址
/sayHello是方法名称,?name=jack是参数名称和值
在浏览器中输入上面的地址后,可以看到如下效果:
可以看到返回值,和方法名称。ns:sayHelloResponse是方法名称,所有的方法名称后都会带上Response,后面的ns当然是当前方法所在的类的包名了,
这里没有package就是默认的axis2的域名。同样,getAge方法,也是一样的调用方法。
http://localhost:8080/axis2/services/WebServiceTest/getAge?i=22
结果如下:
3. 下面就是客户端调用的代码例子了:
- package client;
- 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 ClientTest {
- public static void main(String[] args) throws AxisFault {
- //RPCServiceClient是RPC方式调用
- RPCServiceClient client = new RPCServiceClient();
- Options options = client.getOptions();
- //设置调用WebService的URL
- String address = "http://localhost:8080/axis2/services/WebServiceTest";
- EndpointReference epf = new EndpointReference(address);
- options.setTo(epf);
- /**
- * * 设置将调用的方法,http://ws.apache.org/axis2是方法
- * * 默认(没有package)命名空间,如果有包名
- * * 就是http://service.hoo.com 包名倒过来即可
- * * sayHello就是方法名称了
- * */
- // QName qname = new QName("http://ws.apache.org/axis2", "getUser");
- // //指定调用的方法和传递参数数据,及设置返回值的类型 (需要设置好返回类型)
- // Object[] result = client.invokeBlocking(qname, new Object[] { "林伟" }, new Class[] { User.class });
- // //值得注意的是axis2的WebService客户端调用的返回对象是一个Object的数组,这点和axis1.x有很大不同。我们一般拿数组的第一个值,转换强转即可。
- // System.out.println("result is " + ((User)result[0]).getUsername());
- QName qname = new QName("http://ws.apache.org/axis2", "add");
- Object[] result = client.invokeBlocking(qname, new Object[] { new Integer(422),new Integer(1) }, new Class[] { int.class });
- System.out.println("result is " + result[0]);
- }
- }
package client; 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 ClientTest { public static void main(String[] args) throws AxisFault { //RPCServiceClient是RPC方式调用 RPCServiceClient client = new RPCServiceClient(); Options options = client.getOptions(); //设置调用WebService的URL String address = "http://localhost:8080/axis2/services/WebServiceTest"; EndpointReference epf = new EndpointReference(address); options.setTo(epf); /** * * 设置将调用的方法,http://ws.apache.org/axis2是方法 * * 默认(没有package)命名空间,如果有包名 * * 就是http://service.hoo.com 包名倒过来即可 * * sayHello就是方法名称了 * */ // QName qname = new QName("http://ws.apache.org/axis2", "getUser"); // //指定调用的方法和传递参数数据,及设置返回值的类型 (需要设置好返回类型) // Object[] result = client.invokeBlocking(qname, new Object[] { "林伟" }, new Class[] { User.class }); // //值得注意的是axis2的WebService客户端调用的返回对象是一个Object的数组,这点和axis1.x有很大不同。我们一般拿数组的第一个值,转换强转即可。 // System.out.println("result is " + ((User)result[0]).getUsername()); QName qname = new QName("http://ws.apache.org/axis2", "add"); Object[] result = client.invokeBlocking(qname, new Object[] { new Integer(422),new Integer(1) }, new Class[] { int.class }); System.out.println("result is " + result[0]); } }
axis2的WebService客户端调用的返回对象是一个Object的数组,这点和axis1.x有很大不同。我们一般拿数组的第一个值,转换强转即可。
发表评论
-
Apache Axis2 环境搭配详解
2012-09-19 15:28 716Apache Axis2 环境搭配详解 ... -
Webservice用来传递参数,并返回对象(采用手动打成aar包)
2012-09-17 17:40 7111. 首先,先编写服务端代码 [ ... -
Axis2 关于 Web Serviece 发布
2012-09-14 10:49 656关于 Web Serviece 以及 Axis2 技术(修定1 ... -
使用axis2 构建webservice
2012-09-14 09:49 533http://www.doc88.com/p-69630666 ... -
Axis2 中的工具wsdl2Java 的使用点滴
2012-09-14 09:31 1031Axis2是常用的一种SOAP engine,但是它提供的ws ... -
Axis2: wsdl2java 参数注解
2012-09-14 09:23 1074wsdl2java 用于根据WSDL生成相应的服务端和客户 ... -
axis2 发布成 war 包发布 axis打成war包
2012-09-11 10:31 747axis2 发布成 war 包发布 axis打成war包 ... -
WebService Axis2
2012-09-11 10:13 7321,下载axis2-1.6.1-bin.zip,axis2-1 ... -
JAVA转WSDL使用说明
2012-09-04 17:28 633进入接口所在class文件的文件夹(包的最上层,如果包名是co ... -
控制台用WSDL转JAVA方法
2012-09-04 17:26 843控制台用wsdl转JAVA方法: Axis2提供了一个wsdl ...
相关推荐
axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例
方便初学者学习axis2,最简单的例子!
axis2入门及简单例子
Axis2 Webservice端例子Axis2 Webservice端例子
简单例子:axis2整合spring发布webservice,以及session的管理
<groupId>org.apache.axis2 <artifactId>axis2 <version>1.6.2 <groupId>org.apache.axis2 <artifactId>axis2-adb <version>1.6.2 <groupId>org.apache.axis2 ...
一个基于axis的webservice接口例子
一个简单的axis2客户端调用WebService的代码,分辨调用了一个部署在axis2上的java WebService和IIS6上部署的.NET WebService,用了OM方式和Object[]方式,可供初学axis2的同学参考
axis1.4和axis2相关jar文件,axis1.4和axis2相关jar文件
axis2-java2wsdl-1.5.4.jar axis2-jaxbri-1.5.4.jar axis2-jaxws-1.5.4.jar axis2-jibx-1.5.4.jar axis2-json-1.5.4.jar axis2-kernel-1.5.4.jar axis2-metadata-1.5.4.jar axis2-mtompolicy-1.5.4.jar axis2-saaj-...
org.apache.axis2.eclipse.service.plugin_1.6.0.jar axis2-1.6.0 axis2-1.4.1-war.zip axis2-1.6.0-bin.zip
Axis2介绍和例子.已供大家学习和下载使用.
1、axis2相关jar包如下: axiom-api-1.2.10.jar axiom-dom-1.2.10.jar axiom-impl-1.2.10.jar axis2-adb-1.5.4.jar axis2-adb-codegen-1.5.4.jar axis2-codegen-1.5.4.jar axis2-corba-1.5.4.jar axis2-fastinfoset-...
axisdemo是一个普通的javaweb工程,里面有一个简单的接口,在此工程的基础用,利用axis2工具生成服务端的wsdl文件。 axisClient Maven Webapp是一个maven web工程,在这个工程里面,介绍了2种axis2访问服务端接口的...
包含 Axis2的myeclipse的插件,工程例子,文档说明。 经典实例,工程导入就能用。
在D:\Work_Program_Files\axis2-1.6.2\bin目录有一个wsdl2java.bat文件; 3、设置环境变量,加入AXIS2_HOME=<Axis2客户端安装目录>,path中追加;%AXIS2_HOME%\bin 4、打开cmd,执行命令 wsdl2java -uri ...
在D:\Work_Program_Files\axis2-1.6.2\bin目录有一个wsdl2java.bat文件; 3、设置环境变量,加入AXIS2_HOME=Axis2客户端安装目录,path中追加;%AXIS2_HOME%\bin 4、打开cmd,执行命令 wsdl2java -uri ...
Spring+Axis2实例、简单、单纯,干净的WebService附带jar包可以直接安装允许
axisdemo是一个普通的javaweb工程,里面有一个简单的接口,在此工程的基础上,利用axis2工具生成服务端的wsdl文件。 axisClient Maven Webapp是一个maven web工程,在这个工程里面,介绍了2种axis2访问服务端接口的...
axis 1.x与axis2.x开发 以及jar