Spring編寫客戶端
在本章中,我們將學習如何使用Spring WS爲Spring WS編寫服務器中創建的Web應用程序服務器創建客戶端。
第1步: 按照Spring WS編寫服務章節中的說明,更新項目countryService 下的com.yiibai
包。
第2步: 按照以下步驟中的說明在com.yiibai.client
包創建一個文件:CountryServiceClient.java,以及在com.yiibai
包下創建一個文件:MainApp.java
。
文件:CountryServiceClient.java 的代碼如下 -
package com.yiibai.client;
import org.springframework.ws.client.core.support.WebServiceGatewaySupport;
import com.yiibai.GetCountryRequest;
import com.yiibai.GetCountryResponse;
public class CountryServiceClient extends WebServiceGatewaySupport {
public GetCountryResponse getCountryDetails(String country){
String uri = "http://localhost:8080/countryService/";
GetCountryRequest request = new GetCountryRequest();
request.setName(country);
GetCountryResponse response =(GetCountryResponse) getWebServiceTemplate()
.marshalSendAndReceive(uri, request);
return response;
}
}
文件:CountryServiceClient.java 的代碼如下 -
package com.yiibai;
import org.springframework.oxm.jaxb.Jaxb2Marshaller;
import com.yiibai.client.CountryServiceClient;
public class MainApp {
public static void main(String[] args) {
CountryServiceClient client = new CountryServiceClient();
Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
marshaller.setContextPath("com.yiibai");
client.setMarshaller(marshaller);
client.setUnmarshaller(marshaller);
GetCountryResponse response = client.getCountryDetails("United States");
System.out.println("Country : " + response.getCountry().getName());
System.out.println("Capital : " + response.getCountry().getCapital());
System.out.println("Population : " + response.getCountry().getPopulation());
System.out.println("Currency : " + response.getCountry().getCurrency());
}
}
啓動Web服務
啓動Tomcat服務器,並確保可以使用標準瀏覽器從webapps文件夾訪問其他網頁。
測試Web服務客戶端
在Eclipse下的應用程序中右鍵單擊MainApp.java
並使用作爲Java Application命令運行。 如果應用程序一切正常,它將打印以下消息。
Country : United States
Capital : Washington
Population : 46704314
Currency : USD
在這裏,我們基於SOAP的Web服務創建了一個Client - CountryServiceClient.java
。 MainApp使用CountryServiceClient
命中Web服務,發出POST請求並獲取數據。