CXF WSDL で最初に生成されたクライアントを使用して、SOAP UI でモック サービスを呼び出そうとしています。私が使用している WSDL には、次のように定義されたポリシーがあります。
<wsp:Policy wsu:Id="addressing-policy" wsdl:required="true">
<wsam:Addressing>
<wsp:Policy>
<wsam:AnonymousResponse/>
<wsam:MessageId/>
</wsp:Policy>
</wsam:Addressing>
</wsp:Policy>
クライアントを呼び出すと、SOAP UI に ws-Addressing ヘッダーが次のように表示されます。
<soap:Header>
<Action xmlns="http://www.w3.org/2005/08/addressing">http://www.cablelabs.com/namespaces/safi/wsdl/cip/opUpdateNotice/msgUpdateNotice</Action>
<MessageID xmlns="http://www.w3.org/2005/08/addressing">urn:uuid:61e13403-0270-40c8-800a-618007f1a2e4</MessageID>
<To xmlns="http://www.w3.org/2005/08/addressing">http://localhost:8088/mockbdCIP-UPDATE-SOAP12HTTP</To>
<ReplyTo xmlns="http://www.w3.org/2005/08/addressing">
<Address>http://www.w3.org/2005/08/addressing/anonymous</Address>
</ReplyTo>
</soap:Header>
SOAP UI では、応答が次のように送信されていることがわかります。
<soap:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
<wsa:Action>http://www.cablelabs.com/namespaces/safi/wsdl/cip/opUpdateNotice/msgUpdateResponse</wsa:Action>
<wsa:RelatesTo RelationshipType="http://www.w3.org/2005/08/addressing/reply">urn:uuid:635f6d1c-fdb6-423b-9713-e1afe0bbd26e</wsa:RelatesTo>
<wsa:To>http://www.w3.org/2005/08/addressing/anonymous</wsa:To>
<wsa:MessageID>uuid:a0e5dde0-f02d-42d4-9bda-51fa7b5506a4</wsa:MessageID>
</soap:Header>
コンソールで、CXF が次の例外をスローしていることがわかります。
原因: org.apache.cxf.ws.policy.PolicyException: これらのポリシーの選択肢を満たすことができません: { http://www.w3.org/2007/05/addressing/metadata }AnonymousResponse { http://www. w3.org/2007/05/addressing/metadata} MessageId at org.apache.cxf.ws.policy.AssertionInfoMap.checkEffectivePolicy(AssertionInfoMap.java:179) ~[cxf-rt-ws-policy-2.7.7.jar:2.7.7] at org.apache.cxf. ws.policy.PolicyVerificationInInterceptor.handle(PolicyVerificationInInterceptor.java:101) ~[cxf-rt-ws-policy-2.7.7.jar:2.7.7] org.apache.cxf.ws.policy.AbstractPolicyInterceptor.handleMessage(AbstractPolicyInterceptor) .java:44) ~[cxf-rt-ws-policy-2.7.7.jar:2.7.7] at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272) ~[cxf-api- 2.7.7.jar:2.7.7] at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:835) ~[cxf-api-2.7.7.jar:2.7.7] at org.apache. cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1606) ~[cxf-rt-transports-http-2.7.7.jar:2.7.7] org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1502) ~[cxf-rt-transports-http-2.7.7.jar:2.7.7] at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream .close(HTTPConduit.java:1309) ~[cxf-rt-transports-http-2.7.7.jar:2.7.7] org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56) で ~[ cxf-api-2.7.7.jar:2.7.7] org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:627) で ~[cxf-rt-transports-http-2.7.7.jar :2.7.7] org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) で ~[cxf-api-2.7.7.jar:2.7.7] org.apache.cxf.phase で.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272) ~[cxf-api-2.7.7.jar:2.7.7] org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:565) ~[cxf-api-2.7.7.jar:2.7.7] org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:474) ~[cxf-api-2.7] .7.jar:2.7.7] at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:377) ~[cxf-api-2.7.7.jar:2.7.7] at org.apache.cxf .endpoint.ClientImpl.invoke(ClientImpl.java:330) ~[cxf-api-2.7.7.jar:2.7.7] org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96) で ~[ cxf-rt-frontend-simple-2.7.7.jar:2.7.7] at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135) ~[cxf-rt-frontend-jaxws-2.7.7 .jar:2.7.7] ... 42個の共通フレームを省略7.jar:2.7.7] at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:330) ~[cxf-api-2.7.7.jar:2.7.7] at org.apache.cxf. frontend.ClientProxy.invokeSync(ClientProxy.java:96) ~[cxf-rt-frontend-simple-2.7.7.jar:2.7.7] org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135) ) ~[cxf-rt-frontend-jaxws-2.7.7.jar:2.7.7] ... 42個の共通フレームを省略7.jar:2.7.7] at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:330) ~[cxf-api-2.7.7.jar:2.7.7] at org.apache.cxf. frontend.ClientProxy.invokeSync(ClientProxy.java:96) ~[cxf-rt-frontend-simple-2.7.7.jar:2.7.7] org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135) ) ~[cxf-rt-frontend-jaxws-2.7.7.jar:2.7.7] ... 42個の共通フレームを省略
誰でもこれを修正する方法についてアイデアを持っていますか?