Hello all,
I found something bizarre which made to wonder why.
Here is what I found:
1.) When I used Axis2 Eclipse Codegen plugins (Generate Java source
code from WSDL file) to generate code from this WSDL, it didn't allow me.
It kept throwing me an error -
"An error occurred while completing the process -
java.lang.InterruptedException
No element type is defind for the message xxxxx"
2.) Then, I switched to CXF 2.0.8 and tried to generate the client
as I did with Axis2 and surprisingly, it got through and created the client
side stubs.
CXF doesn't see this WSDL as a bad one.
Please correct me if I'm wrong. To my knowledge, when you
define "type" attribute for the "message" and not the "element" attribute
then it has to be an "rpc" style.
Axis2 knows it but CXF ignores it.
Can anyone let me know why there's a difference in handling
the WSDLs?
If I modify the WSDL as Axis2 wants me to and generate just
the client and hit the service (which is already existing), will I still be
able to succeed?
Here is the WSDL I'm talking about:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="urn:login.safe.two.us"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:impl="urn:login.safe.two.us"
xmlns:intf="urn:login.safe.two.us"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<schema elementFormDefault="qualified"
targetNamespace="urn:login.safe.two.us"
xmlns="http://www.w3.org/2001/XMLSchema">
<complexType name="TestLoginType">
<sequence>
<element name="eid" maxOccurs="1"
minOccurs="1" type="xsd:string" />
<element name="key" nillable="true"
type="xsd:string" />
</sequence>
</complexType>
<complexType name="TestLoginTypeResponse">
<sequence>
<element name="failedReason"
nillable="true" type="xsd:string" />
<element name="status"
type="xsd:boolean" />
</sequence>
</complexType>
</schema>
</wsdl:types>
<wsdl:message name="testLoginRequest">
<wsdl:part name="testLoginRequestAttributes"
type="impl:TestLoginType"/>
</wsdl:message>
<wsdl:message name="testLoginResponse">
<wsdl:part name="testLoginResponseAttributes"
type="impl:TestLoginTypeResponse"/>
</wsdl:message>
<wsdl:portType name="LoginServicePortType">
<wsdl:operation name="testLogin">
<wsdl:input message="impl:testLoginRequest"
name="testLoginRequest" />
<wsdl:output message="impl:testLoginResponse"
name="testLoginResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="LoginServiceSoapBinding"
type="impl:LoginServicePortType">
<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="testLogin">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="testLoginRequest">
<wsdlsoap:body use="literal" />
</wsdl:input>
<wsdl:output name="testLoginResponse">
<wsdlsoap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="LoginService">
<wsdl:port binding="impl:LoginServiceSoapBinding"
name="LoginService">
<wsdlsoap:address
location="http://JISLOGINDEV:8080/JisAuthentication/services/safelogin" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Thanks.
--
View this message in context:
http://www.nabble.com/Axis2-and-CXF---Handling-WSDLs-differently-tp19696717p19696717.html
Sent from the cxf-user mailing list archive at Nabble.com.