[ https://issues.apache.org/jira/browse/CXF-4876?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alan Yang updated CXF-4876: --------------------------- Attachment: cxf-4876.patch Modified the test cases org.apache.cxf.cxf2006.RespectBindingFeatureClientServerTest based on the patch CXF-4876-checkstyle.patch reviesed by Freeman. > CXF RespectBinding feature does not support the customized binding info under > operation and its sub element. > ------------------------------------------------------------------------------------------------------------ > > Key: CXF-4876 > URL: https://issues.apache.org/jira/browse/CXF-4876 > Project: CXF > Issue Type: Bug > Components: JAXB Databinding > Affects Versions: 2.6.2 > Reporter: Alan Yang > Assignee: Freeman Fang > Labels: JAXWS-2.2, RespectBinding, > Attachments: CXF-4876-checkstyle.patch, cxf-4876.patch, > JaxWsEndpointImpl.java.patch > > > The RespectBinding description in the JAXWS 2.2 spec is: > 6.5.3 javax.xml.ws.RespectBindingFeature > The RespectBindingFeature is used to control whether a JAX-WS implementation > MUST respect/honor the contents of the wsdl:binding associated with an > endpoint. It has a corresponding RespectBinding annotation described in > section 7.14.3. > ♦ Conformance (javax.xml.ws.RespectBindingFeature): When the > javax.xml.ws.RespectBindingFeature is enabled, a JAX-WS implementation MUST > inspect the wsdl:binding at runtime to determine result and parameter > bindings as well as any wsdl:extensions that have the required=true > attribute. All required wsdl:extensions MUST be supported and honored by a > JAX-WS implementation unless a specific wsdl:extension has be explicitly > disabled via a WebServiceFeature. > But when we test our application that enabled the RespectBinding feature, we > found an issue in cxf-2.6.2. The issue is if we add an invalid binding under > wsdl:binding element as you can see in below, a WebServiceException will be > throw out when accessing the endpoint first time, and the endpoint will not > be accessed, this is behavior is correct. > <binding name="EchoPortBinding" type="tns:Echo"> > <soap:binding transport="http://schemas.xmlsoap.org/soap/http" > style="document"/> > <tns:badBinding wsdl:required="true" uri="http://bad/bad" > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" /> > <operation name="echo"> > <soap:operation soapAction=""/> > <input> > <soap:body use="literal"/> > </input> > <output> > <soap:body use="literal"/> > </output> > <fault name="Exception"> > <soap:fault name="Exception" use="literal"/> > </fault> > </operation> > </binding> > But if we add the invalid binding under operation or its sub element (input, > output or fault), like the example in below, then cxf will not check it, and > the endpoint would be access after deployment, although the wsdl4j has > deserialize it as an unkown element. > <binding name="EchoPortBinding" type="tns:Echo"> > <soap:binding transport="http://schemas.xmlsoap.org/soap/http" > style="document"/> > <operation name="echo"> > <soap:operation soapAction=""/> > <tns:badBinding wsdl:required="true" uri="http://bad/bad" > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" /> > <input> > <soap:body use="literal"/> > </input> > <output> > <soap:body use="literal"/> > </output> > <fault name="Exception"> > <soap:fault name="Exception" use="literal"/> > </fault> > </operation> > </binding> -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira