微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WebService框架整理一 Axis1

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"         requestFlow             handler  
  7.                 type="java:org.apache.axis.handlers.http.URLMapper" />  
  8. </transport         name="local"responseFlow                 type="java:org.apache.axis.transport.local.LocalResponder" service  
  9.         name="Version"  
  10.         provider="java:RPC"parameter  
  11.             name="allowedMethods"  
  12.             value="getVersion"              name="className"  
  13.             value="org.apache.axis.Version" servicedeployment>  

我们将测试Axis1内部的Version服务。 
接下来,我们构建web.xml文件,如下所示: 
web-app  
  •     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  •     xmlns="http://java.sun.com/xml/ns/javaee"  
  •     xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
  •     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
  •     id="WebApp_ID"  
  •     version="2.5"display-name>Apache-Axisservlet>Apache-Axis Servletservlet-name>axisservlet-class>org.apache.axis.transport.http.AxisServletload-on-startup>0servlet-mappingurl-pattern>/services/*web-app所有以/services/开头的请求都将转交给AxisServlet处理。 
    构建一个测试用例,如下所示: 

    Java代码  

    收藏代码

      import static org.junit.Assert.*;  
    1.   
    2. import java.net.URL;  
    3. import javax.xml.namespace.QName;  
    4. import org.apache.axis.client.Call;  
    5. import org.apache.axis.client.Service;  
    6. import org.junit.Before;  
    7. import org.junit.Test;  
    8. /** 
    9.  * WebService测试 
    10.  *  
    11.  * @author 梁栋 
    12.  * @version 1.0 
    13.  * @since 1.0 
    14.  */  
    15. public class WebServiceTest {  
    16.     private String namespaceUri = "http://localhost:8080/axis/services/Version";  
    17. private String wsdlUrl = namespaceUri + "?wsdl";  
    18.          * 测试 
    19.      *  
    20.      * @throws Exception 
    21.      */  
    22.     @Test  
    23. final void test() throws Exception {  
    24.         // 创建调用对象  
    25.         Service service = new Service();  
    26.         Call call = (Call) service.createCall();  
    27. // 调用 远程方法  
    28.         call.setoperationName(new QName(namespaceUri, "getVersion"));  
    29. // 设置URL  
    30.         call.setTargetEndpointAddress(new URL(wsdlUrl));  
    31. // 执行远程调用,同时获得返回值  
    32.         String version = (String) call.invoke(new Object[] {});  
    33. // 打印信息  
    34.         System.err.println(version);  
    35. // 验证  
    36.         assertNotNull(version);  
    37.     }  
    38. }  

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

    单击getVersion服务,进入WSDL页面,如图所示: 
    我们已经能够正常访问该服务了,执行测试用例,如果我们正常获得版本信息则认为验证通过! 
    Axis就这么简单! 
    控制台得到如下信息,如图所示: 
    其实,在Eclipse中我们可以直接使用IDE提供的工具进行WebService验证,按下图步骤执行操作: 
    得到一个页面,如图所示: 
    继续按步骤点击,看看得到什么内容: 
    在Eclipse中,即便我们没有测试用例,也可使用IDE自带的工具进行验证!

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

    版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

    相关推荐