WebService框架整理(一) Axis1

引用: http://snowolf.iteye.com/blog/575019

Axis用过一段时间后就听说Axis2横空出世,继而接触了CXF,如果不赶紧整理,怕是都要遗忘了,今天咱就先整理一下Axis1。
Axis1终于1.4版本,此后转为 Axis2

先搭建一个简单的Axis1,日后根据需要逐步求精。

相关链接:
WebService框架整理(一) Axis1
WebService框架整理(二) Axis1+Spring

在开始构建前,我们需要获得以下jar包:
引用

activation.jar
axis.jar
commons-discovery.jar
commons-logging.jar
log4j.jar
jaxrpc.jar
mail.jar
wsdl4j.jar


首先,需要在WEB-INF下构建server-config.wsdd文件,内容如下:
Xml代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <deployment  
  3.     xmlns="http://xml.apache.org/axis/wsdd/"  
  4.     xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">  
  5.     <transport  
  6.         name="http">  
  7.         <requestFlow>  
  8.             <handler  
  9.                 type="java:org.apache.axis.handlers.http.URLMapper" />  
  10.         </requestFlow>  
  11.     </transport>  
  12.     <transport  
  13.         name="local">  
  14.         <responseFlow>  
  15.             <handler  
  16.                 type="java:org.apache.axis.transport.local.LocalResponder" />  
  17.         </responseFlow>  
  18.     </transport>  
  19.     <service  
  20.         name="Version"  
  21.         provider="java:RPC">  
  22.         <parameter  
  23.             name="allowedMethods"  
  24.             value="getVersion" />  
  25.         <parameter  
  26.             name="className"  
  27.             value="org.apache.axis.Version" />  
  28.     </service>  
  29. </deployment>  

我们将测试Axis1内部的Version服务。
接下来,我们构建web.xml文件,如下所示:
Xml代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xmlns="http://java.sun.com/xml/ns/javaee"  
  5.     xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
  6.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
  7.     id="WebApp_ID"  
  8.     version="2.5">  
  9.     <display-name>Apache-Axis</display-name>  
  10.     <servlet>  
  11.         <display-name>Apache-Axis Servlet</display-name>  
  12.         <servlet-name>axis</servlet-name>  
  13.         <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>  
  14.         <load-on-startup>0</load-on-startup>  
  15.     </servlet>  
  16.     <servlet-mapping>  
  17.         <servlet-name>axis</servlet-name>  
  18.         <url-pattern>/services/*</url-pattern>  
  19.     </servlet-mapping>  
  20. </web-app>  

所有以/services/开头的请求都将转交给AxisServlet处理。
构建一个测试用例,如下所示:
Java代码   收藏代码
  1. import static org.junit.Assert.*;  
  2.   
  3. import java.net.URL;  
  4.   
  5. import javax.xml.namespace.QName;  
  6.   
  7. import org.apache.axis.client.Call;  
  8. import org.apache.axis.client.Service;  
  9. import org.junit.Before;  
  10. import org.junit.Test;  
  11.   
  12. /** 
  13.  * WebService测试 
  14.  *  
  15.  * @author 梁栋 
  16.  * @version 1.0 
  17.  * @since 1.0 
  18.  */  
  19. public class WebServiceTest {  
  20.     private String namespaceUri = "http://localhost:8080/axis/services/Version";  
  21.     private String wsdlUrl = namespaceUri + "?wsdl";  
  22.   
  23.   
  24.     /** 
  25.      * 测试 
  26.      *  
  27.      * @throws Exception 
  28.      */  
  29.     @Test  
  30.     public final void test() throws Exception {  
  31.   
  32.         // 创建调用对象  
  33.         Service service = new Service();  
  34.         Call call = (Call) service.createCall();  
  35.   
  36.         // 调用 远程方法  
  37.         call.setOperationName(new QName(namespaceUri, "getVersion"));  
  38.   
  39.         // 设置URL  
  40.         call.setTargetEndpointAddress(new URL(wsdlUrl));  
  41.   
  42.         // 执行远程调用,同时获得返回值  
  43.         String version = (String) call.invoke(new Object[] {});  
  44.   
  45.         // 打印信息  
  46.         System.err.println(version);  
  47.   
  48.         // 验证  
  49.         assertNotNull(version);  
  50.     }  
  51.   
  52. }  

启动服务,访问地址 http://localhost:8080/axis/services,得到如下页面:

单击getVersion服务,进入WSDL页面,如图所示:

我们已经能够正常访问该服务了,执行测试用例,如果我们正常获得版本信息则认为验证通过!
Axis就这么简单!
控制台得到如下信息,如图所示:



其实,在Eclipse中我们可以直接使用IDE提供的工具进行WebService验证,按下图步骤执行操作:

得到一个页面,如图所示:

继续按步骤点击,看看得到什么内容:

在Eclipse中,即便我们没有测试用例,也可使用IDE自带的工具进行验证!

朋友可以下载这个简单的实例,见附件!

WebService框架整理(一) Axis1
WebService框架整理(二) Axis1+Spring

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值