三年沒寫了。。。好快。。上班之後還是重拾起來,雖然早已不做ACM了,但是和大家分享知識總是令人高興地。
說下項目中常用到的WebService吧,WebService技術是一種跨平臺、耦合度非常低的應用。實際場景:
1.提供WebService的WSDL地址,要求我們調用其中的方法,完成某些業務邏輯。此時我們是客戶端調用服務,別人是服務端提供服務。
假設有這樣的一個WSDL地址,10.112.11.145:9902/App/MyImplService?WSDL;裏面定義了一個方法void add(int x,int y);
我們在瀏覽器地址中輸入這個WSDL地址(前提是有效的),就可以看到一些XML,通常是SOAP報文。
開發的時候,
第一步:打開CMD的DOS窗口,進入你的jdk安裝目錄的bin下面,比如我的是D:/jdk1.6.0_26/bin,利用jdk提供的wsimport.exe工具來生成我們本地需要的java代碼。
命令如下:
wsimport -s D;\Test\src http://10.112.11.145:9902/App/MyImplService?WSDL,
就可以在指定的Src目錄下獲得我們的java代碼了。
第二步:
把上面得到的Java文件直接導入到我們的項目中,就跟用已有的Java文件一樣,可以直接用,調用過程也很簡單。
MyImplService service = new MyImplService();
MyImpl serviceImpl = service.getMyImplPort();
serviceImpl.add(xx,xx);
這樣就完成了整個過程的調用。
2.服務提供方。我們作爲WebService的提供方開發接口,別人來調用我們的服務,像1中我們的操作一樣。
這個相信也有很多人都做過了,很簡單,
第一步:根據你具體的業務邏輯定義接口,
package com.sgx.webservice;
import javax.jws.WebService;
@WebService
public interface Hello {
void sayHello();
}
第二步:完成實現類
package com.sgx.webservice;
import javax.jws.WebService;
@WebService
public class HelloImpl implements Hello{
@Override
public void sayHello() {
System.out.println("Hello,World!");
}
}
第三步:發佈WebService,
1.如果是本地項目的話,直接用java裏面的Endpoint.publish(yourwsdl)即可。
2.如果是要上其他環境(UAT,生產==)這個時候我們只需要定義好我們的WebService接口,WebMethod等等。
如果是WebLogic服務器的話,服務端只需要定義接口和實現類,這樣應用啓動的時候就會自動檢測到這個WebService服務並且將他發佈出去,
我們在瀏覽器輸入地址驗證一下即可。
然後別人就可以調用了我們發佈的服務了。