java - 使用java向远程服务发送xml请求

标签 java xml web-services esb

我想使用 java 将以下 xml 请求发送到 ESB 端点 http://abc.co.za:8000/service/abcdefg。我不太熟悉 Web 服务和 ESB,因为我来自前端。

如有任何帮助或建议,我们将不胜感激。

Server Time: 11:02:58:028 / Workstation Time: Monday, 22 February 2016 - 11:02:57:703
[DEBUG] SENDING SOAP REQUEST
MethodID: ID_getSubmitRequest; UID=-4820428854312736237
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns2:getSubmitRequest xmlns:ns2="urn:AC_IDM_SUBMITREQUESTVi" xmlns="urn:com.virsa.ae.ejbutil">
<ns2:requestDetails>
<application/>
<company>STACK OVERFLOW</company>
<customField>
<CustomFieldsDTO>
<name>Users ID Number</name>
<value>6303066107089</value>
</CustomFieldsDTO>
</customField>
<department xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<emailAddress>ronny.ronny@stack.co.za</emailAddress>
<employeeType>STACK</employeeType>
<firstName>RONNY</firstName>
<functionalArea xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<lastName>RONNY</lastName>
<locale xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<location xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<managerTelephone xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<mgrEmailAddress xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<mgrFirstName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<mgrId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<mgrLastName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<priority>HIGH</priority>
<requestReason xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<requestType>SYSTEM</requestType>
<requestorEmailAddress>None</requestorEmailAddress>
<requestorFirstName>None</requestorFirstName>
<requestorId>BP5151</requestorId>
<requestorLastName>None</requestorLastName>
<requestorTelephone>None</requestorTelephone>
<roles>
<RoleData>
<action>ADD</action>
<comments xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<company xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<roleId>ZCB_STACK</roleId>
<sysId/>
<validFrom>2016-02-22T11:02:57+02:00</validFrom>
<validTo>9999-02-22T11:02:57+02:00</validTo>
</RoleData>
</roles>
<sNCName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
<telephone>0123456789</telephone>
<unsecureLogon>false</unsecureLogon>
<userId>BP111</userId>
<validFrom>2016-02-22T11:02:57+02:00</validFrom>
<validTo>9999-02-22T11:02:57+02:00</validTo>
</ns2:requestDetails>
</ns2:getSubmitRequest>
</soapenv:Body>
</soapenv:Envelope>

最佳答案

有多个库可以帮助您完成此任务。选项之一是 Apache CXF:http://cxf.apache.org/docs/wsdl-to-java.html .

完成此任务的步骤:

  • 使用 Apache CXF 或其他库创建一个客户端 JAR,其中包含用于连接到目标 SOAP 服务的代码
  • 将此库包含在您的 Java 代码/项目中
  • 初始化代理以连接到服务(由生成的客户端库提供)
  • 填充您的输入
  • 调用 SOAP 端点并处理返回的输出

很好的例子证明了这一点:http://cxf.apache.org/docs/developing-a-consumer.html

关于java - 使用java向远程服务发送xml请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44327373/

相关文章:

python - 如何使用 lxml 有效地解析这个包含嵌套元素的巨大 XML 文件?

java - 尝试添加 Jackson 库时出现 BeanCreationException

javascript - 使用 JavaScript 解析 RSS 提要并不适用于 RSS 提要中的所有项目

jquery - 使用 jQuery ajax 调用 Restful Web 服务

java - 为什么 JUnit 测试在 Ant Build System 中失败?

JAVA:SomeStructure<E> 使其按另一种类型 T 排序?

java - 如何通过url调用CXF Web服务时传递参数

java - Spring 生成的 WSDL 公开了错误的协议(protocol)(HTTP 与 HTTPS)端点位置

java - 我是否应该创建一次 MongoClient?

java - 如何在 WhatsApp 上将图像和文本一起分享给特定收件人?