加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

WebService框架整理(一) Axis1

发布时间:2020-12-16 23:01:58 所属栏目:安全 来源:网络整理
导读:Axis用过一段时间后就听说Axis2横空出世,继而接触了CXF,如果不赶紧整理,怕是都要遗忘了,今天咱就先整理一下Axis1。? Axis1 终于1.4版本,此后转为 Axis2 。? 先搭建一个简单的Axis1,日后根据需要逐步求精。? 相关链接:? WebService框架整理(一) Axis
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自带的工具进行验证!

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

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读