Details
-
New Feature
-
Status: Closed
-
Minor
-
Resolution: Invalid
-
None
-
None
Description
The following element: <wsam:Addressing wsp:Optional="false"/> (where wsam="http://www.w3.org/2007/05/addressing/metadata")
generated by default by NetBeans[1] could not be supported by the CXF's WS:Policy engine, regardless of "true" or "false" value. I had to remove it from the WSDL in order for WS-SecurityPolicy w/X.509[2] to work.
Attempts to run my DoubleIt client with this element returned the following error:
[INFO] Feb 2, 2010 6:19:56 AM org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromWSDL
[INFO] INFO: Creating Service
DoubleItService from WSDL: file:/work/workspace/DoubleIt/service-war/src/main/webapp/WEB-INF/wsdl/DoubleIt.wsdl
[INFO] Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Expected exactly one child element of type Policy.
[INFO] at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:146)
[INFO] at $Proxy38.doubleIt(Unknown Source)
[INFO] at com.mycompany.webservice.client.WSClient.doubleIt(WSClient.java:28)
[INFO] at com.mycompany.webservice.client.WSClient.main(WSClient.java:21)
[INFO] Caused by: org.apache.cxf.ws.policy.PolicyException: Expected exactly one child element of type Policy.
[INFO] at org.apache.cxf.ws.policy.builder.primitive.NestedPrimitiveAssertion.<init>(NestedPrimitiveAssertion.java:93)
[INFO] at org.apache.cxf.ws.policy.builder.primitive.NestedPrimitiveAssertion.<init>(NestedPrimitiveAssertion.java:70)
[INFO] at org.apache.cxf.ws.addressing.policy.AddressingAssertionBuilder.build(AddressingAssertionBuilder.java:77)
[1] http://www.jroller.com/gmazza/entry/metro_x509_profile#MetroPKI2 (WSDL underneath illustration)
[2] http://www.jroller.com/gmazza/entry/cxf_x509_profile_secpol