【问题标题】:Construct SOAP Request using SoapJaxbDataFormat marshal使用 SoapJaxbDataFormat 编组构造 SOAP 请求
【发布时间】:2017-08-15 01:06:13
【问题描述】:

尝试使用 SoapJaxbDataFormat 封送方法构造一个肥皂请求。 路线:

private SoapJaxbDataFormat soap = new SoapJaxbDataFormat("<manage order generated package path>");

public void configure() throws Exception {
    soap.setVersion("1.2");
    from("direct:" + "invokeSoapServiceRoute")
        .process(new constructManageOrderRequestObject())
        .setHeader(Exchange.SOAP_ACTION, simple(MANAGE_ORDER_SOAP_ACTION))
        .setHeader(Exchange.HTTP_METHOD, simple(HTTP_METHOD_POST))
        .setHeader(Exchange.CONTENT_TYPE, constant("application/soap+xml;charset=UTF-8"))
        .marshal(soap) //request
        .log(LoggingLevel.DEBUG, LOG, "request ===========>${body}")
    .end();
}

constructManageOrderRequestObject 处理器创建 ManageOrderRequest 对象(类是在构建时使用 maven 从 WSDL 生成的)并设置其所有不同的属性(其他引用)并将对象设置为交换体。当我使用上面的代码编组正文时,它正在记录以下输出 -

<?xml version="1.0" encoding="UTF-8"?>
<ns0:Envelope xmlns:ns0="http://www.w3.org/2003/05/soap-envelope">
   <ns0:Body>
      <ns1:manageOrderRequest xmlns:ns1="http://cap.xe.com/xsd/ManageOrder/2010/06/01">com.xe.cap.ManageOrderRequest@40c3dcba</ns1:manageOrderRequest>
   </ns0:Body>
</ns0:Envelope>

它没有转换 ManageOrderRequest 对象 xml,而是使用其在 soap-body 中的对象引用。

谁能帮我解决这个问题。

【问题讨论】:

  • 有人能帮帮我吗!

标签: java web-services soap apache-camel cxf


【解决方案1】:

我找到了解决办法:

需要使用soap.setContextPath("Package name")设置上下文路径

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多