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

WebService框架整理(一) Axis1

发布时间:2020-12-17 00:29:09 所属栏目:安全 来源:网络整理
导读:引用: http://snowolf.iteye.com/blog/575019 Axis用过一段时间后就听说Axis2横空出世,继而接触了CXF,如果不赶紧整理,怕是都要遗忘了,今天咱就先整理一下Axis1。 Axis1终于1.4版本,此后转为 Axis2。 先搭建一个简单的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
  • axis.rar (2.4 MB)
  • 下载次数: 861
  • 查看图片附件

(编辑:李大同)

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

    推荐文章
      热点阅读