例子:java實現web服務請求

示例: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

相關文章
相關標籤/搜索