Hi,

I attached a part of the original WSDL from Axis2 where I think it's 
interesting [1]. I removed the types because they are generated with cxfPlugin 
and I hope I did not make to much mistakes by pseudonymisation.

More complex and at the moment and not understandable for me is the sections of 
wsdl:service, wsdl:binding, and wsdl:portType.

So far as I understand should the server open three endpoints which leads to 
the same webservice.

Further I added the current WSDL generated with JAX-WS and CXF 3.4.5 [2]

@Stateless
@WebService(
        serviceName = "MyWebService ",
        portName = "MyPort",
        targetNamespace = "http://example.com/MyWebService /",
        endpointInterface = "com.example.MyInterface")
public class MyWebService implements MyInterface {

Maybe you can give me a hint how I can reacht it with the libs of TomEE 8.0.13.

Thanks,
Markus

[1]
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema";
                  xmlns:example="http://example.com/";
                  xmlns:ns1="http://org.apache.axis2/xsd";
                  xmlns:ns="http://example.com/myWebService/";
                  xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl";
                  xmlns:http="http://schemas.xmlsoap.org/wsdl/http/";
                  xmlns:xs="http://www.w3.org/2001/XMLSchema";
                  xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/";
                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
                  targetNamespace="http://example.com/myWebService/";>
    <wsdl:types>
        [...]
    </wsdl:types>
    <wsdl:message name="logoutRequest">
        <wsdl:part name="parameters" element="ns:logout"/>
    </wsdl:message>
    <wsdl:message name="logoutResponse">
        <wsdl:part name="parameters" element="ns:logoutResponse"/>
    </wsdl:message>
    <wsdl:message name="logoutIPAddressHeader">
        <wsdl:part name="ipAddress" element="example:IPAddress"/>
    </wsdl:message>
    <wsdl:message name="loginRequest">
        <wsdl:part name="parameters" element="ns:login"/>
    </wsdl:message>
    <wsdl:message name="loginResponse">
        <wsdl:part name="parameters" element="ns:loginResponse"/>
    </wsdl:message>
    <wsdl:message name="loginIPAddressHeader">
        <wsdl:part name="ipAddress" element="example:IPAddress"/>
    </wsdl:message>
    <wsdl:portType name="MyInterface">
        <wsdl:operation name="logout">
            <wsdl:input message="ns:logoutRequest" wsaw:Action="urn:logout"/>
            <wsdl:output message="ns:logoutResponse" 
wsaw:Action="urn:logoutResponse"/>
        </wsdl:operation>
        <wsdl:operation name="login">
            <wsdl:input message="ns:loginRequest" wsaw:Action="urn:login"/>
            <wsdl:output message="ns:loginResponse" 
wsaw:Action="urn:loginResponse"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="MyWebServiceSOAP11Binding" type="ns:MyInterface">
        <soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="logout">
            <soap:operation soapAction="urn:logout" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
                <soap:header message="ns:logoutIPAddressHeader" 
part="ipAddress" use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="login">
            <soap:operation soapAction="urn:login" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
                <soap:header message="ns:loginIPAddressHeader" part="ipAddress" 
use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="MyWebServiceHttpBinding" type="ns:MyInterface">
        <http:binding verb="POST"/>
        <wsdl:operation name="logout">
            <http:operation location="MyWebService/logout"/>
            <wsdl:input>
                <mime:content part="parameters" type="text/xml"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content part="parameters" type="text/xml"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="login">
            <http:operation location="MyWebService/login"/>
            <wsdl:input>
                <mime:content part="parameters" type="text/xml"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content part="parameters" type="text/xml"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="MyWebService">
        <wsdl:port name="MyWebServiceSOAP11port_http" 
binding="ns:MyWebServiceSOAP11Binding">
            <soap:address 
location="http://localhost:8080/axis2/webservices/MyWebService"/>
        </wsdl:port>
        <wsdl:port name="MyWebServiceHttpport" 
binding="ns:MyWebServiceHttpBinding">
            <http:address 
location="http://localhost:8080/axis2/webservices/MyWebService"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>


<wsdl:definitions name="MyWebService" 
targetNamespace="http://example.com/myWebService";>
    <wsdl:types>
        [...]
    </wsdl:types>
    <wsdl:message name="logout">
        <wsdl:part element="tns:logout" name="parameters"> </wsdl:part>
    </wsdl:message>
    <wsdl:message name="logoutResponse">
        <wsdl:part element="tns:logoutResponse" name="parameters"> </wsdl:part>
    </wsdl:message>
    <wsdl:message name="loginResponse">
        <wsdl:part element="tns:loginResponse" name="parameters"> </wsdl:part>
    </wsdl:message>
    <wsdl:message name="login">
        <wsdl:part element="tns:login" name="parameters"> </wsdl:part>
    </wsdl:message>
    <wsdl:portType name="MyInterface">
        <wsdl:operation name="logout">
            <wsdl:input message="tns:logout" name="logout" 
wsam:Action="urn:logout" wsaw:Action="urn:logout"> </wsdl:input>
            <wsdl:output message="tns:logoutResponse" name="logoutResponse" 
wsam:Action="urn:logoutResponse" wsaw:Action="urn:logoutResponse"> 
</wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="login">
            <wsdl:input message="tns:login" name="login" 
wsam:Action="urn:login" wsaw:Action="urn:login"> </wsdl:input>
            <wsdl:output message="tns:loginResponse" name="loginResponse" 
wsam:Action="urn:loginResponse" wsaw:Action="urn:loginResponse"> </wsdl:output>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="MyWebServiceSoapBinding" type="tns:MyInterface">
        <soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="logout">
            <soap:operation soapAction="urn:logout" style="document"/>
            <wsdl:input name="logout">
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output name="logoutResponse">
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="login">
            <soap:operation soapAction="urn:login" style="document"/>
            <wsdl:input name="login">
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output name="loginResponse">
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="MyWebService">
        <wsdl:port binding="tns:MyWebServiceSoapBinding" name="MyPort">
            <http:address 
location="http://localhost:8080/axis2/webservices/MyWebService"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>

> Gesendet: Mittwoch, 11. Januar 2023 um 22:19 Uhr
> Von: "Jean-Louis Monteiro" <[email protected]>
> An: [email protected]
> Betreff: Re: Soap Service with three endpoints
>
> Would you be able to provide a small exemple to reproduce with the expected
> WSDL?
> That would help debug and understand on our side.
> --
> Jean-Louis Monteiro
> http://twitter.com/jlouismonteiro
> http://www.tomitribe.com
>
>
> On Wed, Jan 11, 2023 at 3:11 PM <[email protected]> wrote:
>
> > Hi guys,
> >
> > in our company we changed the SOAP implmementation from Axis2 to CXF.
> >
> > We are using the CXF vesion which is used inside the Tomee 8.0.14.
> >
> > At the moment we have the problem that the AXIS WSDL indicated three
> > endpoints where was mentioned as binding the the WSDL.
> >
> > http://www.example.com/a?wsdl
> >
> > http://www.example.com/a
> >
> > http://www.example.com/a.aSOAP11port_http
> >
> > http://www.example.com/a.aHttpport
> >
> > <wsdl:service name="WS">
> > <wsdl:port name="WSSOAP11port_http" binding="ns:aBinding">
> > <soap:address location="http://localhost:8080/a.SOAP11port_http/"/>
> > </wsdl:port>
> > <wsdl:port name="WSHttpport" binding="ns:aHttpBinding">
> > <http:address location="http://localhost:8080/a.Httpport/"/>
> > </wsdl:port>
> > </wsdl:service>
> >
> > Since we using JAX-Ws as well we see only one URL and this is even
> > mentioned inside the WSDL.
> >
> > @WebService(portName = "a")
> >
> > http://www.example.com/a?wsdl
> >
> > http://www.example.com/a
> >
> > <wsdl:service name="WS">
> > <wsdl:port binding="tns:WsBinding" name="a">
> > <soap:address location="http://localhost:8080/a"/>
> > </wsdl:port>
> > </wsdl:service>
> >
> > Do I have any change to get the WSDL as before?
> > If not do I have a change to get three endpoints with Tomee 8 which are
> > going to the same webservice?
> >
> > Thanks,
> > Markus
> >
> >
>

Reply via email to