如何从Java调用Web服务? (我有一个perl脚本来做)

时间:2012-04-04 21:46:20

标签: java soap wsdl jax-ws

我有一个Java Web应用程序需要调用位于不同服务器上的Web服务。

以下是我调用服务的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 ......虽然我不太清楚如何去做。任何方向都会很棒。

3 个答案:

答案 0 :(得分:0)

我会使用:

  1. 与服务端口的简单http连接并自行发送
  2. 或者

    1. Jax-ws作为客户端 - 您需要在Wsdl上运行wsimport,然后使用生成的java类来调用您的服务。

答案 1 :(得分:0)

答案 2 :(得分:0)

这是一个非常开放的问题。 - 在java中有很多框架/库来调用webservices。

检查这些框架wsifaxisjax-ws并选择您喜欢的内容。虽然第一个是专门用于调用的,但最后两个更完整,并帮助您创建服务器端(您自己的服务)以及客户端代码。