Thanks Daniel. Here https://www.w3.org/Submission/WS-Policy/#Optional_Policy_Assertions
Section 4.3.3 says: Empty <wsp:ExactlyOne /> expresses a policy with zero policy alternatives. I think this means, this is a valid policy assertion. Also, the web service which I am trying to invoke is getting invoked from other SOAP Clients like SOAP UIand Boomerang but I am unable to invoke using CXF Client. Thus getting error on the CXF client side itself. The actual web service which I am trying to invoke is exposed by SAP and it is not giving any error if I invoke it using other SOAP Clients like SOAP UI or Boomerang. This is the actual policy which is attached to the SAP web service: <wsp:Policy wsu:Id="BN_ZRPMATERIAL"><!-- Exactly One is empty here --><wsp:ExactlyOne xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:sapsp=" http://www.sap.com/webas/630/soap/features/security/policy"xmlns:sp=" http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702" xmlns:wsa=" http://www.w3.org/2005/08/addressing" xmlns:wsu=" http://schemas.xmlsoap.org/ws/2002/07/utility"/> <saptrnbnd:OptimizedXMLTransferxmlns:saptrnbnd=" http://www.sap.com/webas/710/soap/features/transportbinding/" uri=" http://xml.sap.com/2006/11/esi/esp/binxml" wsp:Optional="true"/> </wsp:Policy> If the service is getting invoked from other SOAP Clients, can we not invoke it using CXF Client as well? Please let me know if my understanding is wrong about this. Thanks, Akanksha On Fri, Sep 16, 2016 at 6:23 AM, Daniel Kulp <dk...@apache.org> wrote: > > According to the WS-Policy spec: > > http://specs.xmlsoap.org/ws/2004/09/policy/ws-policy.pdf < http://specs.xmlsoap.org/ws/2004/09/policy/ws-policy.pdf> > > Section 4.1: > > /wsp:Policy/wsp:ExactlyOne A collection of policy alternatives. If there are no Element Information Items in the [children] property, there are no admissible policy alternatives, i.e., no behavior is admissible. > > Thus, I believe the current behavior is correct. > > > Dan > > > >> On Sep 16, 2016, at 6:47 AM, Akanksha Agrawal <akanksha....@gmail.com> wrote: >> >> Hello folks, >> >> I am trying to invoke a web service having the following policy attached: >> >> https://gist.github.com/Akanksha08/8acdeaf4467fc06c29a6d4f9f7f2a19d >> >> I am getting the following Exception: >> >> javax.xml.ws.soap.SOAPFaultException: None of the policy alternatives >> can be satisfied. >> at org.apache.cxf.jaxws.DispatchImpl.mapException(DispatchImpl.java:290) >> at org.apache.cxf.jaxws.DispatchImpl.invoke(DispatchImpl.java:334) >> at org.apache.cxf.jaxws.DispatchImpl.invoke(DispatchImpl.java:246) >> at com.ws.cxf.client.SOAPClient.invokeService(SOAPClient.java:71) >> at com.ws.cxf.client.SOAPClient.main(SOAPClient.java:42) >> Caused by: org.apache.cxf.ws.policy.PolicyException: None of the >> policy alternatives can be satisfied. >> at org.apache.cxf.ws.policy.EndpointPolicyImpl.chooseAlternative(EndpointPolicyImpl.java:166) >> at org.apache.cxf.ws.policy.EndpointPolicyImpl.finalizeConfig(EndpointPolicyImpl.java:145) >> at org.apache.cxf.ws.policy.EndpointPolicyImpl.initialize(EndpointPolicyImpl.java:141) >> at org.apache.cxf.ws.policy.PolicyEngineImpl.createEndpointPolicyInfo(PolicyEngineImpl.java:584) >> at org.apache.cxf.ws.policy.PolicyEngineImpl.getEndpointPolicy(PolicyEngineImpl.java:313) >> at org.apache.cxf.ws.policy.PolicyEngineImpl.getClientEndpointPolicy(PolicyEngineImpl.java:294) >> at org.apache.cxf.ws.policy.PolicyDataEngineImpl.getClientEndpointPolicy(PolicyDataEngineImpl.java:61) >> at org.apache.cxf.transport.http.HTTPConduit.updateClientPolicy(HTTPConduit.java:316) >> at org.apache.cxf.transport.http.HTTPConduit.getClient(HTTPConduit.java:850) >> at org.apache.cxf.transport.http.HTTPConduit.configureConduitFromEndpointInfo(HTTPConduit.java:347) >> at org.apache.cxf.transport.http.HTTPConduit.finalizeConfig(HTTPConduit.java:427) >> at org.apache.cxf.transport.http.HTTPTransportFactory.getConduit(HTTPTransportFactory.java:242) >> at org.apache.cxf.binding.soap.SoapTransportFactory.getConduit(SoapTransportFactory.java:222) >> at org.apache.cxf.binding.soap.SoapTransportFactory.getConduit(SoapTransportFactory.java:229) >> at org.apache.cxf.endpoint.AbstractConduitSelector.createConduit(AbstractConduitSelector.java:145) >> at org.apache.cxf.endpoint.AbstractConduitSelector.getSelectedConduit(AbstractConduitSelector.java:107) >> at org.apache.cxf.endpoint.UpfrontConduitSelector.prepare(UpfrontConduitSelector.java:63) >> at org.apache.cxf.endpoint.ClientImpl.prepareConduitSelector(ClientImpl.java:849) >> at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:509) >> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:423) >> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:326) >> at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:279) >> at org.apache.cxf.endpoint.ClientImpl.invokeWrapped(ClientImpl.java:314) >> at org.apache.cxf.jaxws.DispatchImpl.invoke(DispatchImpl.java:327) >> ... 3 more >> >> Could anyone please look into it? >> >> Thanks, >> Akanksha > > -- > Daniel Kulp > dk...@apache.org <mailto:dk...@apache.org> - http://dankulp.com/blog < http://dankulp.com/blog> > Talend Community Coder - http://coders.talend.com < http://coders.talend.com/>