學(xué)習(xí)Java6(一) WebServices (1)服務(wù)端 (轉(zhuǎn))
Java6發(fā)布了,其中一個吸引我的新特性就是原生支持WebServices。在這和大家分享下學(xué)習(xí)心得。下面就開始寫個最簡單的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;
}
}
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;
}
}
用偶這種方法寫的service可以省去上面這步。
targetNamespace = "http://jdk.study.hermit.org/client"這句是指定客戶端獲取服務(wù)端服務(wù)后存放的類路徑。注意是反著的,http: //jdk.study.hermit.org/client在客戶端生成的類會放在org.hermit.study.jdk.client包下。
下面是發(fā)布服務(wù):











http://localhost:8080/HelloService是指發(fā)布的地址
運(yùn)行StartService ...,開發(fā)瀏覽器輸入:http://localhost:8080/HelloService?wsdl
如果能看到以下內(nèi)容,就可以
<?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>
- <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 2007-01-12 15:16 liaojiyong 閱讀(487) 評論(2) 編輯 收藏 所屬分類: WebService