+++ This bug was initially created as a clone of Bug #1083770 +++ [Copied problem description from CXF Jira] In CXF 2.7.10 when using Java First WS-Policy Annotations such as: @Policies({ @Policy(uri = "annotationpolicies/TestOperationPolicy.xml"), @Policy(uri = "annotationpolicies/TestOperationInputPolicy.xml", placement = Policy.Placement.BINDING_OPERATION_INPUT), @Policy(uri = "annotationpolicies/TestOperationOutputPolicy.xml", placement = Policy.Placement.BINDING_OPERATION_OUTPUT), @Policy(uri = "annotationpolicies/TestOperationPTPolicy.xml", placement = Policy.Placement.PORT_TYPE_OPERATION), @Policy(uri = "annotationpolicies/TestOperationPTInputPolicy.xml", placement = Policy.Placement.PORT_TYPE_OPERATION_INPUT), @Policy(uri = "annotationpolicies/TestOperationPTOutputPolicy.xml", placement = Policy.Placement.PORT_TYPE_OPERATION_OUTPUT) }) The resulting WSDL ends up generating multiple PolicyReference elements when there is no separate Java Interface for example: <wsdl:operation name="echoInt"> <soap:operation soapAction="" style="document"/> <wsp:PolicyReference URI="#echoIntBindingOpPolicy"/> <wsp:PolicyReference URI="#echoIntBindingOpPolicy"/> <wsdl:input name="echoInt"> <soap:body use="literal"/> <wsp:PolicyReference URI="#echoIntBindingOpInputPolicy"/> <wsp:PolicyReference URI="#echoIntBindingOpInputPolicy"/> </wsdl:input> <wsdl:output name="echoIntResponse"> <soap:body use="literal"/> <wsp:PolicyReference URI="#echoIntBindingOpOutputPolicy"/> <wsp:PolicyReference URI="#echoIntBindingOpOutputPolicy"/> </wsdl:output> </wsdl:operation> --- Additional comment from Scott Mumford on 2014-04-22 21:43:21 EDT --- Flagged as Known Issue as ticket unresolved at the time of writing the release note. --- Additional comment from Nichola Moore on 2014-05-13 22:00:56 EDT --- Now set to bug fix as requested in bug 1096876. A resolution needs to be added to the doc text, however. --- Additional comment from Nichola Moore on 2014-05-14 00:57:11 EDT --- Set back to known issue. Flag reset in error. --- Additional comment from Kyle Lape on 2014-05-30 12:35:23 EDT --- This should already be included in 6.3.0 since this fix was included in CXF 2.7.11: klape@localhost cxf$ git tag --contains eb5ac69120bc7799997740ff6817864039b55518 cxf-2.7.11
Fix is in: http://git.app.eng.bos.redhat.com/git/apache/cxf.git/commit/?h=cxf-2.7.11-redhat&id=eb5ac69120bc7799997740ff6817864039b55518 , if CXF is bumped to 2.7.11-redhatX this issue can be closed.
I still see reported issue in 6.2.4.CP.CR1: Defining webservice with no interface like this: @WebService( serviceName = "HelloWorldServiceNoInterface", portName = "HelloWorld1", name = "HelloWorld1", targetNamespace = "http://www.jboss.org/jbossas/quickstarts/wshelloworld/HelloWorld1" ) @Policy(uri = "ws-policy/x509SecurityPolicy.xml", placement = Policy.Placement.BINDING) public class HelloWorldServiceNoInterface { @WebMethod @Policies({ @Policy(uri = "ws-policy/inputPolicy.xml", placement = Policy.Placement.PORT_TYPE_OPERATION_INPUT), @Policy(uri = "ws-policy/outputPolicy.xml", placement = Policy.Placement.PORT_TYPE_OPERATION_OUTPUT) }) public String sayHello() { return "Hello World!"; } } still results in multiple PolicyReference elements in wsdl: <wsdl:portType name="HelloWorld1"> <wsdl:operation name="sayHello2"> <wsdl:input message="tns:sayHello2" name="sayHello2"> <wsp:PolicyReference URI="#Input_Security_Policy"/> <wsp:PolicyReference URI="#Input_Security_Policy"/> </wsdl:input> <wsdl:output message="tns:sayHello2Response" name="sayHello2Response"> <wsp:PolicyReference URI="#Output_Security_Policy"/> <wsp:PolicyReference URI="#Output_Security_Policy"/> </wsdl:output> </wsdl:operation> </wsdl:portType> <wsdl:binding name="HelloWorldServiceNoInterfaceSoapBinding" type="tns:HelloWorld1"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsp:PolicyReference URI="#X509SecurityPolicy"/> <wsp:PolicyReference URI="#X509SecurityPolicy"/> <wsdl:operation name="sayHello2"> <soap:operation soapAction="" style="document"/> <wsdl:input name="sayHello2"> <soap:body use="literal"/> </wsdl:input> <wsdl:output name="sayHello2Response"> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding>
Converted release note to Known Issue as failed QA
Shifting to 6.3.1 - this require new spin of CXF (2.7.12 iirc)
Verified on 6.3.2.CP.CR1