Java:简单SOAP客户端

我正在寻找Java的SOAP客户端。

Apache Axis在我看来非常肿。我不明白为什么Java必须如此复杂。例如,在PHP中,我要做的就是:

<?php

$global_service_wsdl='https://api.betfair.com/global/v3/BFGlobalService.wsdl';

$betfair=new SoapClient($global_service_wsdl);

$params=array("request"=>

array("header"=>

array("clientStamp"=>0,"sessionToken"=>$session_token)),"locale"=>""

);

$response=$betfair->getAllEventTypes($params);

?>

我的$ response对象保存了我需要的所有信息。

有人可以建议我如何在Java中实现类似这样的事情而不会太麻烦呢?

提前谢谢了,

〜编辑1〜

@jarnbjo:

这对我非常有用。我遇到的困难是,需要哪些导入才能使代码运行?

我运行了以下命令:sh wsdl2java.sh -o输出-a -uri

https://api.betfair.com/global/v3/BFGlobalService.wsdl

并建立输出。您认为这比PHP快吗?另外,我还有一个“异步”选项。这是否意味着我可以进行异步调用?那将非常有用。我想在基于Java的Websocket服务器中运行所有这些程序。

回答:

除非您需要标准Java API中SOAP客户端未提供的其他功能,否则可以使用JDK的bin目录中的wsimport工具(将其指向您的WSDL

URL)并让其为服务外观生成Java类。

使用生成的类,您需要比PHP示例中更多的Java代码来执行请求,但这仍然是合理的:

BFGlobalService betfair = new BFGlobalService_Service().getBFGlobalService();

APIRequestHeader header = new APIRequestHeader();

header.setClientStamp(0);

header.setSessionToken("someSessionToken");

GetEventTypesReq req = new GetEventTypesReq();

req.setHeader(header);

req.setLocale("");

GetEventTypesResp response = betfair.getAllEventTypes(req);

此示例失败,并显示错误,但可能是因为会话令牌无效。

以上是 Java:简单SOAP客户端 的全部内容, 来源链接: utcz.com/qa/428287.html

回到顶部