`

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入门及简单例子

    Axis2 是一个基于 Java 的 Web 服务框架,它提供了一个灵活、可扩展、可靠的方式来创建、部署和管理 Web 服务。Axis2 是 Apache 软件基金会的一个开源项目,是基于 SOAP 和 WSDL 的 Web 服务实现。 一、准备工作 1...

    在java中启动axis2的例子

    Axis2是Apache组织下的一个开源项目,它是一个高性能、可扩展的Web服务框架,支持SOAP和REST等协议,为开发者提供了构建、部署和管理Web服务的能力。Axis2在Java环境下启动和运行,能够提供异步服务调用的支持,这在...

    简单axis2例子实现.doc

    【描述】: "本教程主要讲解如何在myeclipse8.5中安装axis2插件并实现一个简单的Web Service应用。" 【标签】: "axis2" 【正文】: Apache Axis2是Apache软件基金会开发的一个Web Service框架,用于简化Web Service...

    axis搭建webService的例子

    通过以上步骤,你已经成功地使用Apache Axis搭建了一个简单的Web服务。在实际开发中,Web服务可能会涉及到更复杂的业务逻辑和数据交换,但这个基础的例子可以帮助你理解Web服务的基本原理和Axis的工作方式。在进一步...

    Axis2 、Webservice

    描述中提到的“简单的Axis2写的一个webservice例子”,意味着这是一个使用Axis2框架创建的Web服务示例,其功能是接收一个URL作为输入参数,然后生成一个静态网页。这可能涉及到以下步骤: 1. **创建服务接口**:...

    axis2开发webservice.doc

    在环境准备完毕后,开发者可以通过一个简单的例子——SayHello,来了解使用Axis2开发Web服务的基本流程。这个例子中,Web服务会接收一个字符串参数并返回一个问候语。 开发SayHello服务涉及以下步骤: 1. 在...

    java_webservice_axis2简单开发实例

    Axis2是Apache组织提供的一个轻量级、高性能的Web Service框架,它使得开发者能够方便地创建和部署Web Service。本实例将带你一步步了解如何使用Axis2在Java环境中构建一个简单的Web Service。 首先,我们需要进行...

    java-webservice-axis2简单开发实例.doc

    本篇文章将详细介绍如何使用Java和Axis2来创建一个简单的WebService服务。 ### 一、准备工作 1. **获取Axis2依赖**: 首先,你需要访问Apache Axis2的官方网站(http://ws.apache.org/axis/)下载适合你项目的...

    axis2-webservice新手教程实例

    Apache Axis2 是一个高度可扩展且灵活的 Web 服务引擎,用于构建和部署 SOAP(简单对象访问协议)和 RESTful 服务。它是 Apache Axis 的下一代版本,提供了许多增强功能,如更好的性能、模块化架构以及对多种协议的...

    java调用webservice(axis + ksoap2)

    1. **Axis**:Apache Axis是Apache软件基金会开发的一个开源项目,它提供了一个强大的Web服务工具集,用于创建、部署和调用Web服务。在Java中,Axis可以帮助我们生成客户端代码,简化与SOAP Web服务的交互。 2. **...

    axis1.4学习示例(详细步骤说明)

    Axis1.4 是一个开源的 SOAP(简单对象访问协议)服务框架,用于构建和部署 Web 服务。这个框架允许开发者将 Java 类转换为 Web 服务,或者调用其他 Web 服务。在本示例中,我们将详细探讨如何使用 Axis1.4 创建并...

    webservice的编写发布1(AXIS2)

    AXIS2是Apache软件基金会开发的一个高性能、轻量级的Web Service引擎,它简化了Web Service的开发过程。 ### 一、环境与工具准备 在开始之前,确保你已经安装了以下软件: 1. **Myeclipse**:版本8.6,一个集成...

    java_webservice_axis2简单开发实例借鉴.pdf

    本文将详细介绍如何使用Axis2在Java环境中开发一个简单的Web Service实例。 ### 一、准备工作 1. **下载Axis2库**:首先,我们需要访问Apache官方网站(http://ws.apache.org/axis2)下载Axis2的最新版本。在这个...

    mybatis+spring MVC+webservice axis例子程序实现

    首先,该工程实现了spring MVC、...最后,该工程里的src目录下,有一个readme.txt,请下载者仔细阅读,里面有详细的介绍, 和读者应该准备的东西,还有怎么运行该工程等 如有问题可以联系我,大家共同交流学习一下。

    使用Axis开发Web Service程序

    Axis作为Apache组织下的一个开源项目,为开发者提供了一种简单而强大的工具来创建和部署Web Service。 #### 二、Axis简介 Axis是一个基于Java的高性能、轻量级的Web Service引擎,它支持SOAP协议,并且兼容各种...

    使用axis在项目中开发WebService服务

    Axis是Apache软件基金会的一个开源项目,它提供了基于Java的SOAP(Simple Object Access Protocol)处理和Web服务实现。Axis允许开发者快速、方便地创建和部署Web服务,同时也支持作为Web服务客户端来消费其他服务...

    web_服务简单部署的例子

    - 在Eclipse中创建一个名为`axis2`的用户库,并将`axis2\lib`下的所有JAR包添加到库中。 2. **创建Java项目**: - 新建一个Java项目,命名为`AccountService`。 - 将`axis2`用户库添加到项目的构建路径(`Build ...

Global site tag (gtag.js) - Google Analytics