WebService核心文件调用【web-config.wsdd】详解
WEBSERVICE核心文件【SERVER-CONFIG.WSDD】详解及调用示例
WebService核心文件【server-config.wsdd】详解及调用示例
作者:Vashon
一、准备工作
导入需要的jar包:
二、配置web.xml
在web工程的web.xml中添加如下配置:
- <servlet>
- <servlet-name>AxisServlet</servlet-name>
- <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
- <load-on-startup>15</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>AxisServlet</servlet-name>
- <url-pattern>/services/*</url-pattern>
- </servlet-mapping>
三、配置server-config.wsdd文件
在WEB-INF下添加WebService核心文件server-config.wsdd:
- <?xml version="1.0" encoding="UTF-8"?>
- <deployment xmlns="http://xml.apache.org/axis/wsdd/"
- xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
- <globalConfiguration>
- <!-- 变量设定 -->
- <parameter name="sendMultiRefs" value="true" />
- <parameter name="disablePrettyXML" value="true" />
- <parameter name="adminPassword" value="admin" />
- <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.
- 33. <!-- 核心重点:服务发布,name:表示发布的service名 -->
- 34. <service name="SjrkkService" provider="java:RPC">
- 35. <!-- 发布的service接口类 -->
- 36. <parameter name="className" value="com.xxx.ws.SjrkkService" />
- 37. </service>
- 38.
- 39. <transport name="http">
- 40. <requestFlow>
- 41. <handler type="URLMapper" />
- 42. <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler" />
- 43. </requestFlow>
- 44. <parameter name="qs:list"
- 45. value="org.apache.axis.transport.http.QSListHandler" />
- 46. <parameter name="qs:wsdl"
- 47. value="org.apache.axis.transport.http.QSWSDLHandler" />
- 48. <parameter name="qs.list"
- 49. value="org.apache.axis.transport.http.QSListHandler" />
- 50. <parameter name="qs.method"
- 51. value="org.apache.axis.transport.http.QSMethodHandler" />
- 52. <parameter name="qs:method"
- 53. value="org.apache.axis.transport.http.QSMethodHandler" />
- 54. <parameter name="qs.wsdl"
- 55. value="org.apache.axis.transport.http.QSWSDLHandler" />
- 56. </transport>
- 57. <transport name="local">
- 58. <responseFlow>
- 59. <handler type="LocalResponder" />
- 60. </responseFlow>
- 61. </transport>
62. </deployment>
四、测试WSDL
在浏览器输入:http://localhost:8080/xxx/services/SjrkkService?wsdl //xxx和server-config.wsdd文件中的xxx一致,访问结果如下:
五、调WebService
- /**
- * 调用webservice的方法.
- * @param url wsdl链接
- * @param method 调用的接口
- * @param idCard 传入的参数
- * @return
- * @throws Exception
- */
- 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.
- 16. call.setTargetEndpointAddress(new java.net.URL(endpoint));
- 17. call.setOperationName(method);
- 18.
- 19. rtnXml = (String) call.invoke(new Object[]{idCard});
- 20.
- 21.
- 22. } catch (Exception e) {
- 23. e.printStackTrace();
- 24. }
- 25. return rtnXml;
- 26. }

浙公网安备 33010602011771号