首页 技术 正文
技术 2022年11月7日
0 收藏 999 点赞 594 浏览 3239 个字

WebService核心文件【server-config.wsdd】详解及调用示例

作者:玛莎拉蒂-小贱人

一、准备工作

导入需要的jar包:

二、配置web.xml

在web工程的web.xml中添加如下配置:

  1. <servlet>
  2. <servlet-name>AxisServlet</servlet-name>
  3. <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
  4. <load-on-startup>15</load-on-startup>
  5. </servlet>
  6. <servlet-mapping>
  7. <servlet-name>AxisServlet</servlet-name>
  8. <url-pattern>/services/*</url-pattern>
  9. </servlet-mapping>

三、配置server-config.wsdd文件

在WEB-INF下添加WebService核心文件server-config.wsdd:

  1. <?xml version=”1.0″ encoding=”UTF-8″?>
  2. <deployment xmlns=”http://xml.apache.org/axis/wsdd/”
  3. xmlns:java=”http://xml.apache.org/axis/wsdd/providers/java”>
  4. <globalConfiguration>
  5. <!– 变量设定 –>
  6. <parameter name=”sendMultiRefs” value=”true” />
  7. <parameter name=”disablePrettyXML” value=”true” />
  8. <parameter name=”adminPassword” value=”admin” />
  9. <parameter name=”attachments.Directory”
  10. value=”D:\myproject\calileo\xxx\WebContent\WEB-INF\attachments” />
  11. <parameter name=”dotNetSoapEncFix” value=”true” />
  12. <parameter name=”enableNamespacePrefixOptimization” value=”true” />
  13. <parameter name=”sendXMLDeclaration” value=”true” />
  14. <parameter name=”attachments.implementation”
  15. value=”org.apache.axis.attachments.AttachmentsImpl” />
  16. <parameter name=”sendXsiTypes” value=”true” />
  17. <requestFlow>
  18. <handler type=”java:org.apache.axis.handlers.JWSHandler”>
  19. <parameter name=”scope” value=”session” />
  20. </handler>
  21. <handler type=”java:org.apache.axis.handlers.JWSHandler”>
  22. <parameter name=”scope” value=”request” />
  23. <parameter name=”extension” value=”.jwr” />
  24. </handler>
  25. </requestFlow>
  26. </globalConfiguration>
  27. <handler name=”LocalResponder”
  28. type=”java:org.apache.axis.transport.local.LocalResponder” />
  29. <handler name=”URLMapper” type=”java:org.apache.axis.handlers.http.URLMapper” />
  30. <handler name=”Authenticate”
  31. type=”java:org.apache.axis.handlers.SimpleAuthenticationHandler” />
  32. <!– 核心重点:服务发布,name:表示发布的service名 –>
  33. <service name=”SjrkkService” provider=”java:RPC”>
  34. <!– 发布的service接口类 –>
  35. <parameter name=”className” value=”com.xxx.ws.SjrkkService” />
  36. </service>
  37. <transport name=”http”>
  38. <requestFlow>
  39. <handler type=”URLMapper” />
  40. <handler type=”java:org.apache.axis.handlers.http.HTTPAuthHandler” />
  41. </requestFlow>
  42. <parameter name=”qs:list”
  43. value=”org.apache.axis.transport.http.QSListHandler” />
  44. <parameter name=”qs:wsdl”
  45. value=”org.apache.axis.transport.http.QSWSDLHandler” />
  46. <parameter name=”qs.list”
  47. value=”org.apache.axis.transport.http.QSListHandler” />
  48. <parameter name=”qs.method”
  49. value=”org.apache.axis.transport.http.QSMethodHandler” />
  50. <parameter name=”qs:method”
  51. value=”org.apache.axis.transport.http.QSMethodHandler” />
  52. <parameter name=”qs.wsdl”
  53. value=”org.apache.axis.transport.http.QSWSDLHandler” />
  54. </transport>
  55. <transport name=”local”>
  56. <responseFlow>
  57. <handler type=”LocalResponder” />
  58. </responseFlow>
  59. </transport>
  60. </deployment>

四、测试WSDL

在浏览器输入:http://localhost:8080/xxx/services/SjrkkService?wsdl      //xxx和server-config.wsdd文件中的xxx一致,访问结果如下:

五、调WebService

  1. /**
  2. * 调用webservice的方法.
  3. * @param url wsdl链接
  4. * @param method 调用的接口
  5. * @param idCard 传入的参数
  6. * @return
  7. * @throws Exception
  8. */
  9. private String getWebServiceResult( String url, String method, String idCard) throws Exception{
  10. String rtnXml = null;
  11. try {
  12. String endpoint = url;
  13. Service service = new Service();
  14. Call call = (Call) service.createCall();
  15. call.setTargetEndpointAddress(new java.net.URL(endpoint));
  16. call.setOperationName(method);
  17. rtnXml = (String) call.invoke(new Object[]{idCard});
  18. } catch (Exception e) {
  19. e.printStackTrace();
  20. }
  21. return rtnXml;
  22. }
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,085
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,560
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,409
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,182
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,819
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,902