WebService:JAX-WS實現WebService
阿新 • • 發佈:2017-07-16
nload cal data- pos 接口 rri implement publish sni
WebService和Java核心技術中的RMI一樣用於實現異構平臺上的應用程序之間數據的交互,唯一不同的是這樣的技術屏蔽了語言之間的差異。這也是其大行其道的原因。
實現WebService的技術多種多樣,能夠使用JAX-WS、CXF、Axis2或Metro等方式實現WebService,接下來會給大家展示怎樣使用不同的方式實現WebService。本篇博客為大家演示怎樣使用JAX-WS實現WebService:
一、創建WebService服務器端:
1、新建一個名為“server”的Javaproject;
2、創建IComputeService接口,代碼例如以下:
package com.ghj.service; import javax.jws.WebService; import javax.jws.soap.SOAPBinding; /** * SEI Service Endpoint Interface 公布的服務接口 * * @author GaoHuanjie */ @WebService @SOAPBinding(style=SOAPBinding.Style.RPC) public interface IComputeService { public int add(int a, int b); }
3、創建IComputeService接口實現類ComputeService。代碼例如以下:
package com.ghj.service.impl; import javax.jws.WebService; import com.ghj.service.IComputeService; /** * SIB Service Implemention Bean * * @author GaoHuanjie */ //endpointInterface指定接入點接口:接口必須存在 @WebService(endpointInterface="com.ghj.service.IComputeService") public class ComputeService implements IComputeService{ @Override public int add(int a, int b) { System.out.println(a+"+"+b+"="+(a+b)); return a+b; } }
4、創建啟動服務器端服務的類StartServer,代碼例如以下:
package com.ghj.server; import javax.xml.ws.Endpoint; import com.ghj.service.impl.ComputeService; /** * 啟動服務器端服務 * * @author GaoHuanjie */ public class StartServer { public static void main(String[] args) { String address = "http://localhost:8888/compute"; Endpoint.publish(address, new ComputeService()); } }
二、創建WebService客戶端:
1、新建一個名為“client”的Javaproject;
2、將“server”project中的IComputeService接口復制到“client”project中;
3、創建調用“server”projectIComputeService接口實現類的代碼。代碼例如以下:
package com.ghj.client; import java.net.MalformedURLException; import java.net.URL; import javax.xml.namespace.QName; import javax.xml.ws.Service; import com.ghj.service.IComputeService; public class Client { public static void main(String[] args) { try { URL url = new URL("http://localhost:8888/compute?wsdl");//創建訪問wsdl服務地址的url QName sname = new QName("http://impl.service.ghj.com/", "ComputeServiceService");//通過Qname指明服務的詳細信息,其參數值與本project中的1.png圖 Service service = Service.create(url,sname);//創建服務 IComputeService computeService = service.getPort(IComputeService.class);//實現接口 System.out.println(computeService.add(12,33)); } catch (MalformedURLException e) { e.printStackTrace(); } } }
三、執行WebService:
1、執行“server”project中的StartServer類;
2、執行“client”project中的Client類。
【0分下載資源】
WebService:JAX-WS實現WebService