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
> >
> >
>