【问题标题】:Send an xml request to a remote service with java使用 java 向远程服务发送 xml 请求
【发布时间】:2017-06-02 11:04:12
【问题描述】:

我想使用 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>

【问题讨论】:

    标签: java xml web-services esb


    【解决方案1】:

    有多个库可以帮助您完成这项任务。选项之一是 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

    【讨论】:

      猜你喜欢
      • 2018-01-31
      • 1970-01-01
      • 1970-01-01
      • 2012-12-20
      • 1970-01-01
      • 1970-01-01
      • 2014-07-09
      • 1970-01-01
      • 2018-10-04
      相关资源
      最近更新 更多