【发布时间】:2011-06-23 08:06:04
【问题描述】:
我有银行的 WSDL 文件,我们必须使用它的服务。使用 Apache axis 1.4 - WSDL2JAVA,我已经生成了所有的代理文件。
我必须调用 4 种方法。每个方法的 SOAP 1.1 请求和响应都包含一个 Header 和 body。在请求中,header 用于设置登录数据,body 包含一个 object params 来实际传递我的方法getCat 的参数。在响应中,我有header_out,它向我传递了连接状态、错误代码(用于身份验证)和正文包含类似
<GetCatResponse xmlns="WebServices">
<GetCatResult>
<xsd:schema>schema</xsd:schema>xml</GetCatResult>
</GetCatResponse>
谁能告诉我如何编写客户端代码来发送请求并获得响应。
肥皂如下所示。
SOAPAction: "WebServices/GetCat"
<soap:Envelope ....>
<soap:Header>
<ws_Header xmlns="WebServices">
<sWebUser>string</sWebUser>
<sWebPassword>string</sWebPassword>
<sCompanyID>string</sCompanyID>
</ws_Header>
</soap:Header>
<soap:Body>
<GetCat xmlns="WebServices">
<ObjParms>
<sCountry>string</sCountry>
<sCatType>string</sCatType>
</ObjParms>
</GetCat>
</soap:Body>
</soap:Envelope>
回应
<soap:Envelope ...>
<soap:Header>
<ws_Header_Out xmlns="WebServices">
<sFlagStatus>int</sFlagStatus>
<sErrorCode>string</sErrorCode>
</ws_Header_Out>
</soap:Header>
<soap:Body>
<GetCatResponse xmlns="WebServices">
<GetCatResult>
<xsd:schema>schema</xsd:schema>xml</GetCatResult>
</GetCatResponse>
</soap:Body>
</soap:Envelope>
【问题讨论】:
-
Axis 1.x 绝对是可怕的——我强烈建议你使用更现代的东西。
-
@skaffman 我们无法使用 Axis 2 转换 WSDL2JAVA。不知道为什么。
-
我建议调查一下,然后,您可能会发现它比从 Axis 1 中获得任何有用的东西更有价值。
-
@skaffman:我会这样做,但我必须提一下,我的团队已经建立了一个通用客户端应用程序来处理所有 Web 服务调用。他们中的一些人已经成功地与axis1.4的一些服务建立了连接,我们已经为应用程序对其进行了标准化。因此,除非我有足够充分的理由证明我的上述问题无法用轴 1.4 解决,否则我现在不能要求所有人都更改他们的版本。
-
谁能给我一个这样的 SOAP 信封请求和响应的示例客户端实现。 1.如何设置请求的header和body以及如何获取带有header和body的response 2.如何获取处理数据集(any)
schema xml GetCatResult>
标签: java web-services soap axis