1. 程式人生 > >【WebService】快速建立webservice例項

【WebService】快速建立webservice例項

快速建立webservice例項步驟:
1、建立IMyService介面類:

@WebService()
public interface IMyService {

    /**
     * 加法
     * @param a
     * @param b
     * @return
     */
    @WebResult(name="addResult")
    public int add(@WebParam(name="a")int a,@WebParam(name="b")int b);

    /**
     * 減法
     * @param a
     * @param
b * @return */
@WebResult(name="minusResult") public int minus(@WebParam(name="a")int a,@WebParam(name="b")int b); }

2、建實現類IMyServiceImpl:

@WebService(endpointInterface="org.zttc.service.IMyService")
public class MyServiceImpl implements IMyService {

    /**
     * 加法
     * @param
a * @param b * @return */
@Override public int add(int a, int b) { System.out.println(a+"+"+b+"="+(a+b)); return a+b; } /** * 減法 * @param a * @param b * @return */ @Override public int minus(int a, int b) { System.out.println(a+"-"
+b+"="+(a-b)); return a-b; } }

3、MyServer類:測試是否部署成功

/**
 * server端
 * @author 王紅偉
 *
 */
public class MyServer {

    public static void main(String[] args) {
        String address = "http://localhost:8888/ns";
        //釋出地址
        Endpoint.publish(address, new MyServiceImpl());
    }

}

4、寫TestClient測試類:部署成功後,我們就可以呼叫了

public class TestClient {
    public static void main(String[] args) {
        try {
            //建立訪問wsdl服務地址的url
            URL url = new URL("http://localhost:8888/ns?wsdl");
            //通過Qname指明服務的具體資訊
            //MyServiceImplService對應wsdl頁的本地提供的webservice的名稱
            QName sname = new QName("http://service.zttc.org/", "MyServiceImplService");
            //建立服務
            Service service = Service.create(url,sname);
            //實現介面
            IMyService ms = service.getPort(IMyService.class);
            System.out.println(ms.add(12,33));
            //以上服務有問題,依然依賴於IMyServie介面
        } catch (MalformedURLException e) {
            e.printStackTrace();
        }
    }
}

執行TestClient,最終結果為45
直接將wsdl轉為java物件,但是存在問題,

//實現介面
IMyService ms = service.getPort(IMyService.class);

這句程式碼依賴外部介面,wsdl可能是.net開發的,可能是其他語言開發的,依賴介面不能跨平臺。所以引出了wsimport的使用。
關於webservice的例項就到這裡,下篇部落格將為您展示wsimport的使用,歡迎您的訪問。