風人園

          弱水三千,只取一瓢,便能解渴;佛法無邊,奉行一法,便能得益。
          隨筆 - 99, 文章 - 181, 評論 - 56, 引用 - 0
          數據加載中……

          Java6 WebServices (一)服務端 (ZT)

          Java6發布了,其中一個吸引我的新特性就是原生支持WebServices。在這和大家分享下學習心得。
          下面就開始寫個最簡單的WebServices:
          package?org.hermit.study.jdk;

          import?javax.jws.WebMethod;
          import?javax.jws.WebService;
          import?javax.jws.soap.SOAPBinding;

          @WebService(targetNamespace?
          =?"http://jdk.study.hermit.org/client")
          @SOAPBinding(style?
          =?SOAPBinding.Style.RPC)
          public?class?Hello?{
          ????@WebMethod
          ????
          public?String?sayHello(String?name)?{
          ????????
          return?"hello:"?+?name;
          ????}
          }
          怎么樣簡潔吧,很多朋友的寫法還要在命令行中執行“wsgen?–cp?. <path>
          用偶這種方法寫的service可以省去上面這步。

          targetNamespace = "http://jdk.study.hermit.org/client"這句是指定客戶端獲取服務端服務后存放的類路徑。注意是反著的,http: //jdk.study.hermit.org/client在客戶端生成的類會放在org.hermit.study.jdk.client包下。
          下面是發布服務:
          package?org.hermit.study.jdk;

          import?javax.xml.ws.Endpoint;

          public?class?StartService?{
          ????
          public?static?void?main(String[]?args)?{
          ????????Endpoint.publish(
          "http://localhost:8080/HelloService",?new?Hello());
          ????}

          }
          呵呵,更簡潔。一句話而已。
          http://localhost:8080/HelloService是指發布的地址

          運行
          StartService?,開發瀏覽器輸入:http://localhost:8080/HelloService?wsdl



          如果能看到以下內容,就可以
          ?<?xml?version="1.0"?encoding="UTF-8"??>?
          -?
          <definitions?xmlns="http://schemas.xmlsoap.org/wsdl/"?xmlns:tns="http://jdk.study.hermit.org/client"?xmlns:xsd="http://www.w3.org/2001/XMLSchema"?xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"?targetNamespace="http://jdk.study.hermit.org/client"?name="HelloService">
          ??
          <types?/>?
          -?
          <message?name="sayHello">
          ??
          <part?name="arg0"?type="xsd:string"?/>?
          ??
          </message>
          -?
          <message?name="sayHelloResponse">
          ??
          <part?name="return"?type="xsd:string"?/>?
          ??
          </message>
          -?
          <portType?name="Hello">
          -?
          <operation?name="sayHello"?parameterOrder="arg0">
          ??
          <input?message="tns:sayHello"?/>?
          ??
          <output?message="tns:sayHelloResponse"?/>?
          ??
          </operation>
          ??
          </portType>
          -?
          <binding?name="HelloPortBinding"?type="tns:Hello">
          ??
          <soap:binding?style="rpc"?transport="http://schemas.xmlsoap.org/soap/http"?/>?
          -?
          <operation?name="sayHello">
          ??
          <soap:operation?soapAction=""?/>?
          -?
          <input>
          ??
          <soap:body?use="literal"?namespace="http://jdk.study.hermit.org/client"?/>?
          ??
          </input>
          -?
          <output>
          ??
          <soap:body?use="literal"?namespace="http://jdk.study.hermit.org/client"?/>?
          ??
          </output>
          ??
          </operation>
          ??
          </binding>
          -?
          <service?name="HelloService">
          -?
          <port?name="HelloPort"?binding="tns:HelloPortBinding">
          ??
          <soap:address?location="http://localhost:8080/HelloService"?/>?
          ??
          </port>
          ??
          </service>
          ??
          </definitions>

          posted on 2006-12-22 12:53 風人園 閱讀(409) 評論(0)  編輯  收藏 所屬分類: JavaWeb Service

          主站蜘蛛池模板: 青海省| 沁阳市| 桓台县| 贵德县| 清水河县| 井陉县| 绵阳市| 盖州市| 绿春县| 榆社县| 建宁县| 尉氏县| 峨眉山市| 合水县| 绍兴县| 即墨市| 罗源县| 万载县| 义乌市| 莱芜市| 海城市| 大洼县| 类乌齐县| 邻水| 齐河县| 莱芜市| 福州市| 宁陕县| 渝北区| 苏州市| 通州区| 元阳县| 姜堰市| 南乐县| 石阡县| 满洲里市| 垦利县| 大渡口区| 彭水| 汤原县| 安丘市|