2012-04-04 46 views
1

我有一個Java Web應用程序需要調用位於不同服務器上的Web服務。如何從Java調用Web服務? (我有一個perl腳本,這樣做)

下面是Perl腳本我有代碼,調用服務:

#!/usr/bin/perl -w 

use SOAP::Lite; 

my $user = 'user'; 
my $password = 'password'; 

my $loginURI = "http://someserver:8080/SakaiLogin.jws?wsdl"; 
my $scriptURI = "http://someserver:8080/sakai-axis/scripts/RosterService.jws?wsdl"; 

my $loginsoap = SOAP::Lite 
-> proxy($loginURI) 
-> uri($loginURI); 

my $scriptsoap = SOAP::Lite 
-> proxy($scriptURI) 
-> uri($scriptURI); 

my $session = $loginsoap->login($user, $password)->result; 

# doSiteRoster(session, site_id, user_id) 
my $result = $scriptsoap->doSiteRoster($session, "cfc338aa-acfb-41a6-a998-7e467afc297b", "djswartz")->result; 

my $logout = $loginsoap->logout($session)->result; 

exit; 

現在,我想我可以用javax.xml.ws.Service ......雖然我不是很確定如何去做。任何方向都會很棒。

+1

有很多關於這個的教程和問題。你嘗試了哪些? – Bozho 2012-04-04 21:53:42

+0

我看了幾個。這看起來特別體面(開發客戶端接近底部)[http://bit.ly/HMepcO](http://bit.ly/HMepcO)。儘管我對整個端點實現類概念感到困惑......就像Hello port = service.getHelloPort();對象端口是容納從服務中拋棄的容器? – djswartz 2012-04-04 21:58:49

+0

這是一個非常開放的問題。 - 檢查這些[wsif](http://ws.apache.org/wsif/),[axis](http://axis.apache.org/axis/),[jax-ws](http:// en.wikipedia.org/wiki/Java_API_for_XML_Web_Services)並選擇你喜歡的內容 – 2012-04-04 23:59:55

回答

0

我會用兩種:

  1. 一個簡單的HTTP連接服務端口,併發送自己

或者

  1. JAX-WS作爲客戶端的XML - 你需要在Wsdl上運行wsimport,然後使用生成的java類來調用您的服務。
0

這是一個非常開放式的問題。 - 在java中有相當多的框架/庫來調用webservices。

檢查這些框架出wsif,axis,jax-ws並選擇你喜歡什麼。雖然第一個專門用於調用,但最後兩個更完整,可以幫助您創建服務器端(您自己的服務)以及客戶端代碼。