gpt4 book ai didi

java - 如何在没有拦截器的情况下向 SOAP 故障添加 header

转载 作者:行者123 更新时间:2023-11-30 04:05:37 26 4
gpt4 key购买 nike

我正在尝试找到一种在不使用拦截器的情况下向 SOAP 故障添加 header 的方法。有没有其他解决方案。

基本上我的 SOAP 请求如下。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sch="http://kp.web.com/schema/" xmlns:sch1="http://kp.web.com/Shared/schema/">
<soapenv:Header>
<sch:clientHeader>
<sch1:consumerId>12</sch1:consumerId>
</sch:clientHeader>
</soapenv:Header>
<soapenv:Body>
<sch:addRequest>
<sch:field1>-3</sch:field1>
<sch:field2>-1</sch:field2>
</sch:addRequest>
</soapenv:Body>
</soapenv:Envelope>

成功消息。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" >
<soap:Header>
<serverHeader xmlns:ns2="http://kp.web.com/schema/" xmlns="http://kp.web.com/Shared/schema/">
<ns2:consumerId>12</ns2:consumerId>
<ns2:completionCode>100</ns2:completionCode>
</serverHeader>
</soap:Header>
<soap:Body>
<addResponse xmlns="http://kp.web.com/schema/" xmlns:ns2="http://kp.web.com/Shared/schema/">
<result>-4</result>
</addResponse>
</soap:Body>
</soap:Envelope>

发生故障时

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>Faulted you sent -1 and -1</faultstring>
<detail>
<faultResponse xmlns:ns2="http://kp.web.com/schema/" xmlns="http://kp.web.com/Shared/schema/">400</faultResponse>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>

我希望错误响应是这样的。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sch="http://kp.web.com/schema/" xmlns:sch1="http://kp.web.com/Shared/schema/">
<soap:Header>
<serverHeader>
<ns2:consumerId>12</ns2:consumerId>
<ns2:completionCode>100</ns2:completionCode>
</serverHeader>
</soap:Header>
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>Faulted you sent -1 and -1</faultstring>
<detail>
<faultResponse xmlns:ns2="http://kp.web.com/schema/" xmlns="http://kp.web.com/Shared/schema/">400</faultResponse>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>

我可以使用支架或者有什么解决方案吗?我无法使用拦截器,因为我需要发回消费者 ID。在拦截器中我不会有请求详细信息。

最佳答案

您可以使用SOAP Message Handlers and Handler Chains 。另一种使用 Filters 的方法。我使用处理程序链来修改 SOAP header 。

这个link可能会有所帮助。

关于java - 如何在没有拦截器的情况下向 SOAP 故障添加 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20798541/

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