1 Reply Latest reply on Nov 18, 2010 10:40 AM by kurtstam

    Generated WSDL differs between WS Stacks. Bug?

    kurtstam

      Hi guys,

       

      On the Apache jUDDI project we deploy WebServices using the WebService annotation on both the interface as well as on the service implementation. For example:

      In the jUDDI project we generated our WebServices Java classes from  the WSDL using the CXF tooling. For the SecuroityService it created  annotations on the interface of:

      @WebService(name = "UDDI_Security_PortType", targetNamespace =  "urn:uddi-org:v3_service")
      public interface UDDISecurityPortType

      and on the implementation class:

      @WebService(serviceName="UDDISecurityService",
                  endpointInterface="org.uddi.v3_service.UDDISecurityPortType",
                  targetNamespace = "urn:uddi-org:v3_service")
      public class UDDISecurityImpl extends AuthenticatedService implements  UDDISecurityPortType

      Now if this is deployed to Tomcat + CXF the generated WSDL says:

      <wsdl:service name="UDDI_Security_Port">
        <wsdl:port binding="tns:UDDI_Security_PortSoapBinding"  name="UDDISecurityServicePort">
          <soap:address location="http://localhost:8080/juddiv3/services/security"/>
        </wsdl:port>
      </wsdl:service>

      While when deployed to JBossAS-5.1 (with JBossWS + CXF) the WSDL says:

      <wsdl:service name="UDDISecurityService">
        <wsdl:port binding="tns:UDDISecurityServiceSoapBinding"  name="UDDISecurityImplPort">
          <soap:address location="http://127.0.0.1:8080/juddiv3/services/security"/>
        </wsdl:port>
      </wsdl:service>

      So clearly the annotations are used in different ways by the two WS  stacks (even if the CXF implementation is used in both cases).

       

      Question:

       

      Are the differences due to a bug, or is the spec unclear as to what to do with the Annotation MetaData? If it is a bug, which WS Stack does the right thing?

       

      Thx,

       

      --Kurt