`

Axis2的相关准备工作,以及提供的一个简单的例子

 
阅读更多

参考网上的相关例子,来进行准备以及后续的开发工作。

一.  下载axis2-1.5.3-war.zip中的axis2.war这个文件放在tomcat目录下,启动tomcat就会把war文件转成一个可以跑起来的axis2的项目。

之后的相关准备工作都是在这个包得基础之上进行开发与测试的。

二.   以下就可以进行简单例子的开发。

     1.  进行服务端的开发:

          

  1. public class WebServiceTest {  
  2.   
  3.     public int add(int a,int b) {  
  4.   
  5.         return a + b;  
  6.     }  
  7.       
  8.     public User getUser(String name) {  
  9.         User user = new User();  
  10.         user.setUsername(name);  
  11.         return user;  
  12.     }  
  13.       
  14. }  
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文件的大致结构了。

clip_image004

 

    2.  测试这个webService的方法

 

复制上面的WebServiceTest的链接地址,然后带上方法名称和参数值即可测试调用是否成功。如下:

http://localhost:8080/axis2/services/WebServiceTest/sayHello?name=jack

http://localhost:8080/axis2/services/WebServiceTest这个是WebService的地址

/sayHello是方法名称,?name=jack是参数名称和值

在浏览器中输入上面的地址后,可以看到如下效果:

clip_image006

可以看到返回值,和方法名称。ns:sayHelloResponse是方法名称,所有的方法名称后都会带上Response,后面的ns当然是当前方法所在的类的包名了,

这里没有package就是默认的axis2的域名。同样,getAge方法,也是一样的调用方法。

http://localhost:8080/axis2/services/WebServiceTest/getAge?i=22

结果如下:

clip_image008

  

     3.   下面就是客户端调用的代码例子了:

    

  1. package client;  
  2.   
  3. import javax.xml.namespace.QName;  
  4. import org.apache.axis2.AxisFault;  
  5. import org.apache.axis2.addressing.EndpointReference;  
  6. import org.apache.axis2.client.Options;  
  7. import org.apache.axis2.rpc.client.RPCServiceClient;  
  8.   
  9.   
  10. public class ClientTest {  
  11.   
  12.     public static void main(String[] args) throws AxisFault {  
  13.        
  14.         //RPCServiceClient是RPC方式调用   
  15.         RPCServiceClient client = new RPCServiceClient();  
  16.         Options options = client.getOptions();   
  17.         //设置调用WebService的URL    
  18.         String address = "http://localhost:8080/axis2/services/WebServiceTest";  
  19.         EndpointReference epf = new EndpointReference(address);   
  20.         options.setTo(epf);  
  21.           
  22.         /**  
  23.          * * 设置将调用的方法,http://ws.apache.org/axis2是方法  
  24.          * * 默认(没有package)命名空间,如果有包名  
  25.          * * 就是http://service.hoo.com 包名倒过来即可  
  26.          * * sayHello就是方法名称了  
  27.          * */   
  28. //      QName qname = new QName("http://ws.apache.org/axis2", "getUser");   
  29. //      //指定调用的方法和传递参数数据,及设置返回值的类型 (需要设置好返回类型)   
  30. //      Object[] result = client.invokeBlocking(qname, new Object[] { "林伟" }, new Class[] { User.class });    
  31. //      //值得注意的是axis2的WebService客户端调用的返回对象是一个Object的数组,这点和axis1.x有很大不同。我们一般拿数组的第一个值,转换强转即可。   
  32. //      System.out.println("result is " + ((User)result[0]).getUsername());    
  33.           
  34.         QName qname = new QName("http://ws.apache.org/axis2""add");  
  35.         Object[] result = client.invokeBlocking(qname, new Object[] { new Integer(422),new Integer(1) }, new Class[] { int.class });   
  36.         System.out.println("result is " + result[0]);  
  37.     }  
  38. }  
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有很大不同。我们一般拿数组的第一个值,转换强转即可。

分享到:
评论

相关推荐

    axis2例子 webservice axis2 示例

    axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例axis2例子 webservice axis2 示例

    AXIS2简单例子

    方便初学者学习axis2,最简单的例子!

    axis2入门及简单例子

    axis2入门及简单例子

    Axis2 Webservice端例子

    Axis2 Webservice端例子Axis2 Webservice端例子

    axis2+spring webservice

    简单例子:axis2整合spring发布webservice,以及session的管理

    axis2 调用webservice 例子

    <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 ...

    axis2webservice接口例子

    一个基于axis的webservice接口例子

    axis2客户端代码简单例子

    一个简单的axis2客户端调用WebService的代码,分辨调用了一个部署在axis2上的java WebService和IIS6上部署的.NET WebService,用了OM方式和Object[]方式,可供初学axis2的同学参考

    axis1.4和axis2相关jar文件

    axis1.4和axis2相关jar文件,axis1.4和axis2相关jar文件

    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-...

    axis2-1.6.0(两个插件,一个例子)

    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介绍和例子

    Axis2介绍和例子.已供大家学习和下载使用.

    axis2相关jar包~eclipse支持插件包

    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-...

    axis2方式开发webservice

    axisdemo是一个普通的javaweb工程,里面有一个简单的接口,在此工程的基础用,利用axis2工具生成服务端的wsdl文件。 axisClient Maven Webapp是一个maven web工程,在这个工程里面,介绍了2种axis2访问服务端接口的...

    Axis2完美例子Demo

    包含 Axis2的myeclipse的插件,工程例子,文档说明。 经典实例,工程导入就能用。

    axis2-1.6.2.zip

    在D:\Work_Program_Files\axis2-1.6.2\bin目录有一个wsdl2java.bat文件; 3、设置环境变量,加入AXIS2_HOME=<Axis2客户端安装目录>,path中追加;%AXIS2_HOME%\bin 4、打开cmd,执行命令 wsdl2java -uri ...

    axis2-1.7.8.zip

    在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例子

    Spring+Axis2实例、简单、单纯,干净的WebService附带jar包可以直接安装允许

    axis2开发webservice(二)

    axisdemo是一个普通的javaweb工程,里面有一个简单的接口,在此工程的基础上,利用axis2工具生成服务端的wsdl文件。 axisClient Maven Webapp是一个maven web工程,在这个工程里面,介绍了2种axis2访问服务端接口的...

    axis 1.x与axis2.x开发

    axis 1.x与axis2.x开发 以及jar

Global site tag (gtag.js) - Google Analytics