1. 程式人生 > >webservice、soap、wsdl的理解

webservice、soap、wsdl的理解

1webservice是一個概念,就是別人呼叫我工程的某個類中的某個方法。就是別人工程和我的工程進行通訊通訊是跨平臺的,如別人的工程是.net,我的工程是java的,也可以實現別人對我某個類中某方法的呼叫。

web service 概念參考連結:http://www.cnblogs.com/Jessy/p/3528341.html

Web Service也叫XML Web Service WebService是一種可以接收從Internet或者Intranet上的其它系統中傳遞過來的請求,輕量級的獨立的通訊技術。是:通過SOAP在Web上提供的軟體服務,使用WSDL檔案進行說明。

2怎麼釋出一個web service?

通過Apache的axis釋出webservice

參考連結:http://blog.csdn.net/trocp/article/details/6757063

=====================================過程如下===============================

首先,AXIS 是apache的作品。

1.到apache去下載相關的包,包括axis.jar、axis-ant.jar、commons-discovery-0.2.jar等。將jar包放到WEB-INF/lib下面


2.在WEB.XML中按如下配置,直接copy進去就可以

  1. <servlet>
  2.   <servlet-name>AxisServlet</servlet-name>
  3.   <servlet-class>
  4.       org.apache.axis.transport.http.AxisServlet  
  5.   </servlet-class>
  6. </servlet>
  7. <servlet>
  8.   <servlet-name>AdminServlet</servlet-name>
  9.   <servlet-class>
  10.       org.apache.axis.transport.http.AdminServlet  
  11.   </servlet-class>
  12.   <load-on-startup>100</load-on-startup>
  13. </servlet>
  14. <servlet>
  15.   <servlet-name>SOAPMonitorService</servlet-name>
  16.   <servlet-class>
  17.       org.apache.axis.monitor.SOAPMonitorService  
  18.   </servlet-class>
  19.   <init-param>
  20.     <param-name>SOAPMonitorPort</param-name>
  21.     <param-value>5001</param-value>
  22.   </init-param>
  23.   <load-on-startup>100</load-on-startup>
  24. </servlet>
  25. <servlet-mapping>
  26.   <servlet-name>AxisServlet</servlet-name>
  27.   <url-pattern>/servlet/AxisServlet</url-pattern>
  28. </servlet-mapping>
  29. <servlet-mapping>
  30.   <servlet-name>AxisServlet</servlet-name>
  31.   <url-pattern>*.jws</url-pattern>
  32. </servlet-mapping>
  33. <servlet-mapping>
  34.   <servlet-name>AxisServlet</servlet-name>
  35.   <url-pattern>/services/*</url-pattern>
  36. </servlet-mapping>
  37. <servlet-mapping>
  38.   <servlet-name>SOAPMonitorService</servlet-name>
  39.   <url-pattern>/SOAPMonitor</url-pattern>
  40. </servlet-mapping>

3.建立一個webservice類,就是一個普通的類包含一個普通方法
  1. publicclass SayHello {  
  2.     public String hello(String name){  
  3.         return"Hello "+name;  
  4.     }  
  5.     publicvoid in(String name){  
  6.         System.out.println(name + "come");  
  7.         Log4j.getLogger().info(name + "come");  
  8.     }  
  9. }  

4.配置server-config.wsdd,server-config.wsdd的路徑在WEB-INF下面,參考第一張圖。
  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <deploymentname="defaultClientConfig"
  3.             xmlns="http://xml.apache.org/axis/wsdd/"
  4.             xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
  5.             xmlns:handler="http://xml.apache.org/axis/wsdd/providers/handler">
  6.  <globalConfiguration>
  7.    <parametername="disablePrettyXML"value="true"/>
  8.    <parametername="dotNetSoapEncFix"value="true"/>
  9.    <parametername="enableNamespacePrefixOptimization"value="false"/>
  10.    <requestFlow>
  11.      <handlertype="java:org.apache.axis.handlers.JWSHandler">
  12.         <parametername="scope"value="session"/>
  13.      </handler>
  14.      <handlertype="java:org.apache.axis.handlers.JWSHandler">
  15.         <parametername="scope"value="request"/>
  16.         <parametername="extension"value