wsimport 使用方法
本文主要介紹wsimport的簡單使用方法。幫助大家在webserviceclient開發過程中生成接口代碼:
打開java JDK文件夾我們會看到wsimport工具,這是由sun為我們免費提供的的。功能強大,會給我們工作帶來極大的方便。
創建服務端代碼:
接口
package com.huawei.idp.composer.service;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
@WebService
public interface MyService {
@WebMethod
public int add(@WebParam(name="a")int a, @WebParam(name="b")int b);
}
實現類
package com.huawei.idp.composer.service.impl;
import javax.jws.WebService;
import com.huawei.idp.composer.service.MyService;
@WebService(endpointInterface="com.huawei.idp.composer.service.MyService")
public class MyServiceimpl implements MyService {
@Override
public int add(int a, int b)
{
return a + b;
}
}
調用wsimport工具。打開dos窗體。輸入命令:
wsimport -d D:\test -keep -verbose http://127.0.0.1:8080/hello?wsdl
這里簡介一下參數:
- -d 表示輸出的文件夾。文件夾必須事先存在,否則導出失敗。
- -keep 表示導出webservice的class文件時是否也導出源碼java文件。
- -verbose verbose表示具體信息。
我們打開D:\test會發現生成了例如以下文件:
我們在Eclipse中又一次建立一個project,將這個文件夾復制到src文件夾下
然后開始編寫client代碼
package com.huawei.idp.composer.client;
import com.huawei.idp.composer.service.impl.MyService;
import com.huawei.idp.composer.service.impl.MyServiceimplService;
public class Test
{
public static void main(String[] args)
{
MyServiceimplService myserviceImpl = new MyServiceimplService();
MyService myService = myserviceImpl.getMyServiceimplPort();
System.out.println(myService.add(1, 2));
}
}
[調用結果](http://img.blog.csdn.net/20150822175745450)``
這里值得注意的是,生成的MyServiceimplService類並非服務端實現類,而是繼承了Service的類而且提供了方法:
/**
*
* @return
* returns MyService
*/
@WebEndpoint(name = “MyServiceimplPort”)
public MyService getMyServiceimplPort() {
return super.getPort(new QName(“http://impl.service.composer.idp.huawei.com/“, “MyServiceimplPort”), MyService.class);
}
“`
這里直接幫我們生成了一個Qname訪問程序。既然怎樣,我們就不用自己寫qname了。直接拿來用測試豈不更好?
到此為止,一個簡單的webservice就實現了,假設對大家有幫助,請點贊假設有不足之處,敬請指正。