示例:java語言實現的web服務客戶端java
package ch01.ts; import java.net.URL; import javax.xml.namespace.QName; import javax.xml.ws.Service; /** * java語言實現web服務客戶端 * @author fuhd */ public class TimeClient { public static void main(String[] args) throws Exception { URL url = new URL("http://localhost:9876/ts?wsdl"); QName qname = new QName("http://ts.ch01/","TimeServerImplService"); Service service = Service.create(url, qname); TimeServer eif = service.getPort(TimeServer.class); System.out.println(eif.getTimeAsString()); System.out.println(eif.getTimeAsElased()); } }
注意QName這個類型,java客戶端明確地建立了一個語法格式爲「URI:本地名稱」的xml限定名。URI是統一資源定位符(Uniform Resource Identifier)的縮寫,和常常遇到的URL是有區別的,一般狀況下URL須要指定具體的資源位置,而URI不須要。簡單地說,一個URI不必定就是一個URL。目前咱們只要清楚java類:java.xml.namespace.QName用來表示一個xml限定名就能夠了。在本類中的命名空間URI在WSDL文檔中提供。本地名稱是SIB類TimeServerImpl名稱加上「Service「,即:TimeServerImplService。本地名稱在WSDL文檔最後一段的Service元素中描述。
web
分別構建好URL和QName對象後,而後調用Service.create方法,執行以下代碼:url
TimeServer port = service.getPort(TimeServer.class);spa
查看WSDL文檔中portType描述的一段,它描述了web服務接口的定義。getPort方法返回一個java對象,也就是SEI實現的實例,能夠經過此對象調用portType中描述的操做。.net