gpt4 book ai didi

java - Web 服务 SOAP 集成

转载 作者:行者123 更新时间:2023-12-01 11:11:23 25 4
gpt4 key购买 nike

我有点困惑。我有一个 WS,它的“消息格式”与我过去见过的另一个 WS 不同。

供应商向我提供了一组他们可以接受的消息(我已经在 SoapUI 中进行了测试,它确实有效 - 很好)

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"xmlns:urn="urn:SAMPLE">
<soapenv:Header/>
<soapenv:Body>
<urn:CustomEnvelope>

问题是,在使用 CustomEnvelope 的地方,我会期望任何方法名称(类似于 urn:calculateSum)。

当我尝试使用 Axis2 生成 java 客户端时,与 ADB 数据绑定(bind)方法相比,我得到了无法编译的代码。当我使用另一个方法时,我在 Stub 对象上只有名为(例如) calculateSum 的方法,并且生成的消息与预期的模式不对应(而不是 CustomEnvelope )使用了calculateSum

我的问题是。你知道这种奇怪的格式意味着什么吗?您对如何集成这种奇怪的 WS 有什么建议吗?我考虑使用 JAXB 创建整个 XML(供应商提供了 XSD 文件)并发送到 WS 或使用标准 Java API 创建 SOAPMessage。但我不确定最好的解决方案是什么。

谢谢,翁德雷

最佳答案

我在 Axis 2 客户端 stub 生成过程中遇到了这个问题,这会导致无法编译的代码。错误位于 ADBDataSource 类。

如果这是您的问题,那么这里就是解决方案。我在项目中所做的,我们使用 WebSphere 作为 Web 应用程序服务器,它在项目的类路径中包含一个 jar 文件 (Something)ThinClient.jar 。现在这个 jar 还包含名为 ADBDataSource 的相同类,但它是一个抽象类。这与我们的 stub 冲突,因为它创建了 ADBDataSource 对象。

我建议尝试看看你是否有这样的 jar 。

解决方案

从类路径中删除 (Something)ThinClient.jar 或具有相同类的文件。

如果删除 (Something)ThinClient.jar 会产生问题,请更改方法并使用 Jax-Ws 而不是 Axis 2,它是 Java 本身的一部分。 (这就是我所做的。)

关于java - Web 服务 SOAP 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32319380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com