主题: 在axis中通过wsdd文件发布和卸载webservice

本文详细介绍了如何使用Axis的WSDD文件发布和卸载WebService,包括配置WSDD文件、使用AdminClient工具进行发布和卸载的过程,以及如何验证部署是否成功。
主题: 在axis中通过wsdd文件发布和卸载webservice
在上一篇中我介绍了一种简单webservice的发布方式-jws。

这种发布方式非常的敏捷!但有它的局限性—你必须知道webservice的源代码。有时候这个的确很让人郁闷!比如:的webservice被打成了一个jar包,你并没有源代码。或者这个webservice根本就不是你的公司开发的。这时你发布这个webservice就会变得很困难。axis针对这种情况提供了wsdd文件的方式来发布和撤销webservice。

现在我们来通过一个wsdd文件来对wsdd有个初步的认识。注意:在开始下面的步骤前请安装axis.具体安装请看上一篇

xml 代码
  1. deployment xmlns="http://xml.apache.org/axis/wsdd/"
  2. xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
  3. service name="MyService" provider="java:RPC">
  4. parameter name="className" value="samples.userguide.example3.MyService"/>
  5. parameter name="allowedMethods" value="*"/>
  6. service>
  7. deployment>

最外面的元素告诉我们这是一个wsdd发布项,并且定义了java的命名空间,service 元素定义了我们的service.java:RPC定义了axis的provider。parameter name定义了webservice类名及所在包的位置。allowedMethods value等于*,表示MyService的所有方法都可以被调用。

了解了wsdd文件,我们来认识一个非常有用的工具AdminClient.正式通过它我们才能通过wsdd文件发布我们的应用。它的全路径是org.apache.axis.client.AdminClient,在axis.jar包中。在使用这个工具前我们必须把相应的jar包加入classpath。如:axis.jar..。如果你做了的练习则这一步就不用再做了。

我们首先进入webservice所在源文件的目录找到deploy.wsdd文件。然后键入如下命令:

java org.apache.axis.client.AdminClient deploy.wsdd

(如果提示错误,请检查你是否将必须的jar包加入classpath)


如果成功则会显示 :

  1. Admin>Done processingAdmin>

下面来解释AdminClient 所做的工作。AdminClient 首先会在axis.jar所在应用下的WEB-INF文件夹下创建一个webservice配置文件server-config.wsdd,并且根据wsdd文件的配置将我们的webservice加入到这个配置文件中。如果server-config.wsdd已经存在则不会创建,会修改这个文件将新的service 配置到server-config.wsdd文件中。

如图:

xml 代码
  1. xml version="1.0" encoding="UTF-8"?>
  2. deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
  3. globalConfiguration>
  4. parameter name="sendMultiRefs" value="true"/>
  5. parameter name="disablePrettyXML" value="true"/>
  6. parameter name="adminPassword" value="admin"/>
  7. parameter name="attachments.Directory" value="C: omcat5webappsaxisWEB-INFattachments"/>
  8. parameter name="dotNetSoapEncFix" value="true"/>
  9. parameter name="enableNamespacePrefixOptimization" value="false"/>
  10. parameter name="sendXMLDeclaration" value="true"/>
  11. parameter name="sendXsiTypes" value="true"/>
  12. parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
  13. requestFlow>
  14. handler type="java:org.apache.axis.handlers.JWSHandler">
  15. parameter name="scope" value="session"/>
  16. handler>
  17. handler type="java:org.apache.axis.handlers.JWSHandler">
  18. parameter name="scope" value="request"/>
  19. parameter name="extension" value=".jwr"/>
  20. handler>
  21. requestFlow>
  22. globalConfiguration>
  23. handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
  24. handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
  25. handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
  26. service name="AdminService" provider="java:MSG">
  27. parameter name="allowedMethods" value="AdminService"/>
  28. parameter name="enableRemoteAdmin" value="false"/>
  29. parameter name="className" value="org.apache.axis.utils.Admin"/>
  30. namespace>http://xml.apache.org/axis/wsdd/namespace>
  31. service>
  32. service name="Version" provider="java:RPC">
  33. parameter name="allowedMethods" value="getVersion"/>
  34. parameter name="className" value="org.apache.axis.Version"/>
  35. service>
  36. >
  37. service name="MyService" provider="java:RPC">
  38. parameter name="allowedMethods" value="*"/>
  39. parameter name="className" value="samples.userguide.example3.MyService"/>
  40. service>
  41. transport name="http">
  42. requestFlow>
  43. handler type="URLMapper"/>
  44. handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
  45. requestFlow>
  46. parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>
  47. parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
  48. parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/>
  49. parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/>
  50. parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>
  51. parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
  52. transport>
  53. transport name="local">
  54. responseFlow>
  55. handler type="LocalResponder"/>
  56. responseFlow>
  57. transport>
  58. deployment>
xml 代码

我们来访问一下看看:

java samples.userguide.example3.Client -lhttp://localhost:8080/axis/services/MyService "test me!"


You typed : test me!

返回正确,部署成功!

如果你要卸载一个webservice也很简单!我们首先定义一个undeploy.wsdd

  1. undeployment xmlns="http://xml.apache.org/axis/wsdd/">
  2. service name="MyService"/>
  3. undeployment>
xml 代码

进入webservice所在源文件的目录找到undeploy.wsdd文件。然后键入如下命令:

java org.apache.axis.client.AdminClient undeploy.wsdd

(如果提示错误,请检查你是否将必须的jar包加入classpath)


如果成功则会显示 :

  1. Admin>Done processingAdmin>

在看server-config.wsdd已经删除了原来service的定义

xml 代码
  1. xml version="1.0" encoding="UTF-8"?>
  2. deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
  3. globalConfiguration>
  4. parameter name="sendMultiRefs" value="true"/>
  5. parameter name="disablePrettyXML" value="true"/>
  6. parameter name="adminPassword" value="admin"/>
  7. parameter name="attachments.Directory" value="C: omcat5webappsaxisWEB-INFattachments"/>
  8. parameter name="dotNetSoapEncFix" value="true"/>
  9. parameter name="enableNamespacePrefixOptimization" value="false"/>
  10. parameter name="sendXMLDeclaration" value="true"/>
  11. parameter name="sendXsiTypes" value="true"/>
  12. parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
  13. requestFlow>
  14. handler type="java:org.apache.axis.handlers.JWSHandler">
  15. parameter name="scope" value="session"/>
  16. handler>
  17. handler type="java:org.apache.axis.handlers.JWSHandler">
  18. parameter name="scope" value="request"/>
  19. parameter name="extension" value=".jwr"/>
  20. handler>
  21. requestFlow>
  22. globalConfiguration>
  23. handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
  24. handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
  25. handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
  26. service name="AdminService" provider="java:MSG">
  27. parameter name="allowedMethods" value="AdminService"/>
  28. parameter name="enableRemoteAdmin" value="false"/>
  29. parameter name="className" value="org.apache.axis.utils.Admin"/>
  30. namespace>http://xml.apache.org/axis/wsdd/namespace>
  31. service>
  32. service name="Version" provider="java:RPC">
  33. parameter name="allowedMethods" value="getVersion"/>
  34. parameter name="className" value="org.apache.axis.Version"/>
  35. service>
  36. 原来的service的定义已经删除!
  37. --&gt
  38. transport name="http">
  39. requestFlow>
  40. handler type="URLMapper"/>
  41. handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
  42. requestFlow>
  43. parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>
  44. parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
  45. parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/>
  46. parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/>
  47. parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>
  48. parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
  49. transport>
  50. transport name="local">
  51. responseFlow>
  52. handler type="LocalResponder"/>
  53. responseFlow>
  54. transport>
  55. deployment>

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12467/viewspace-148193/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12467/viewspace-148193/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值