当前位置: 首页 > 面试题库 >

Java:简单SOAP客户端

江宏深
2023-03-14
问题内容

我正在寻找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);

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



 类似资料:
  • 问题内容: Google的Chrome和IE等应用程序可以透明地处理Kerberos身份验证;但是我找不到适合这种透明度的“简单” Java解决方案。我发现的所有解决方案都需要存在一个krb5.conf文件和一个login.conf文件,以上应用似乎还需要这些文件。 用有效的Kerberos SSO功能构建Java应用程序的最佳方法是什么? [更新]:明确地说,我需要一个 CLIENT 端解决方案

  • 问题内容: 我试图在JAVA中找到一个简单的(ha)带有工作服务的SOAP示例,但我似乎找不到的任何例子。 我已经试过这一个,从这个例子,但它只是不工作,它要求我把一个斜杠的,但它在那里并没有什么发生。 那么,有谁知道任何SOAP示例链接,我可以下载/请求并使用它吗? 谢谢你的帮助。 问题答案: 要用Java实现简单的SOAP客户端,可以使用SAAJ框架(JSE 1.6及更高版本附带): 带有Ja

  • 在这两个webendpoint上-但是错误仍然存在。如果WS-Addressing没有设置为true,那么SOAPUI也会失败。

  • 问题内容: 有人可以给我提供一个非常简单的websocket客户端使用示例吗? 我想连接到websocket(ws://socket.example.com:1234),发送消息(添加频道)并收听消息。所有消息(已发送和已收听)均为JSON格式。 顺便说一句,这个库最适合进行简单的websocket通信吗? 问题答案: 我在这里找到了一个很好的例子: http://www.programmingf

  • 有人能给我提供一个使用的websocket客户端的非常简单的示例吗? 顺便说一句,这个库对于简单的websocket通信是最好的吗?

  • 问题内容: 有没有一种方法可以将angularJS用作SOAP客户端或开发ng SOAP客户端服务? 问题答案: 当然。您所需要做的就是在JavaScript上实现SOAP调用。