Hi,

Overview: The generated wsdl doesn't validate & the generated wsdl chokes
....

I'm trying something very simple.  I'm using the latest axis2 1.3 RC3
nightly.  I'm using this class as input to Java2WSDL

package quote.intfc;

public interface Quotable {
 public String getQuote();
}

So there is 1 method & it takes no input parameters and it returns a string.

The relevant part of the build.xml is

        <java2wsdl outputfilename="${service.wsdl}"
                   className="${interface.class}"
                   outputLocation="${build.dir}\wsdl"
                   targetNamespace="${service.namespace}"
                   servicename="${service.name}"
                   schemaTargetNamespace="${service.data.namespace}">
        </java2wsdl>

The generated wsdl (included at the end) doesn't validate with XMLSpy.  I
think it should or am I mistaken?  I get complaints about

attribute 'part' in extensibility element '<mime:content>' refers to part
'getQuote' which could not be found in message 'getQuoteRequest'  which
seems to be from this fragment

<http:operation location="RandomQuoteWS/getQuote"/>
 <wsdl:input>
  <mime:content part="getQuote" type="text/xml"/>
 </wsdl:input>
 <wsdl:output>
  <mime:content part="getQuote" type="text/xml"/>
 </wsdl:output>
</wsdl:operation>

Also, I'm seeing this kind of message:
extensibility element '<soap12:binding>' might be part of an unsupported
WSDL extension because it is not in namespace '
http://schemas.xmlsoap.org/wsdl/soap' or '
http://schemas.xmlsoap.org/wsdl/http/' and therefore will not be validated

Are you all using XMLSpy?  Is there something I need to do to make it
happily validate this wsdl?

Thinking that maybe XMLSpy is just complaining erroneously, I moved along
and tried to use the wsdl to generate code.  The part from ant is

       <java classname="org.apache.axis2.wsdl.WSDL2Java"
            fork="true" classpathref="${axis2.classpath}">
            <arg value="-uri"/>
            <arg file="${build.dir}/wsdl/${service.wsdl}"/>
            <arg value="-o"/>
            <arg file="${build.dir}"/>
            <arg value="-p"/>
            <arg value="${service.java.packageName}"/>
            <arg value="-ss"/>
            <arg value="-g"/>
            <arg value="-sd"/>
            <arg value="-t"/>
            <arg value="-d"/>
            <arg value="-s"/>
            <arg value="adb"/>
 </java>

(yes, I'm trying adb and after I post this, I will go back to xmlbeans)

and I get

Exception in thread "main"
org.apache.axis2.wsdl.codegen.CodeGenerationException: Error parsing WSDL
        at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.<init>(
CodeGenerationEngine.java:153)
        at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:35)
        at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:24)
Caused by: java.lang.NullPointerException
        at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.<init>(
CodeGenerationEngine.java:129)
        ... 2 more
Java Result: 1

So, is this reasonable?  Is there something wrong with my input interface?
Or are there options/settings I should be using?

Thanks for any & all help.

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
xmlns:axis2="http://service.quote"; xmlns:ns1="http://org.apache.axis2/xsd";
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; xmlns:ns0="
http://data.quote"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:mime="
http://schemas.xmlsoap.org/wsdl/mime/"; xmlns:soap="
http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:soap12="
http://schemas.xmlsoap.org/wsdl/soap12/"; targetNamespace="
http://service.quote";>
    <wsdl:types>
        <xs:schema xmlns:ns="http://data.quote";
attributeFormDefault="qualified" elementFormDefault="qualified"
targetNamespace="http://data.quote";>
            <xs:element name="getQuoteResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="return"
nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:schema>
    </wsdl:types>
    <wsdl:message name="getQuoteRequest"/>
    <wsdl:message name="getQuoteResponse">
        <wsdl:part name="parameters" element="ns0:getQuoteResponse"/>
    </wsdl:message>
    <wsdl:portType name="RandomQuoteWSPortType">
        <wsdl:operation name="getQuote">
            <wsdl:input xmlns:wsaw="
http://www.w3.org/2006/05/addressing/wsdl"; message="axis2:getQuoteRequest"
wsaw:Action="urn:getQuote"/>
            <wsdl:output xmlns:wsaw="
http://www.w3.org/2006/05/addressing/wsdl"; message="axis2:getQuoteResponse"
wsaw:Action="urn:getQuoteResponse"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="RandomQuoteWSSOAP11Binding"
type="axis2:RandomQuoteWSPortType">
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http";
style="document"/>
        <wsdl:operation name="getQuote">
            <soap:operation soapAction="urn:getQuote" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="RandomQuoteWSSOAP12Binding"
type="axis2:RandomQuoteWSPortType">
        <soap12:binding transport="http://schemas.xmlsoap.org/soap/http";
style="document"/>
        <wsdl:operation name="getQuote">
            <soap12:operation soapAction="urn:getQuote" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="RandomQuoteWSHttpBinding"
type="axis2:RandomQuoteWSPortType">
        <http:binding verb="POST"/>
        <wsdl:operation name="getQuote">
            <http:operation location="RandomQuoteWS/getQuote"/>
            <wsdl:input>
                <mime:content type="text/xml" part="getQuote"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content type="text/xml" part="getQuote"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="RandomQuoteWS">
        <wsdl:port name="RandomQuoteWSSOAP11port_http"
binding="axis2:RandomQuoteWSSOAP11Binding">
            <soap:address location="
http://localhost:8080/axis2/services/RandomQuoteWS"/>
        </wsdl:port>
        <wsdl:port name="RandomQuoteWSSOAP12port_http"
binding="axis2:RandomQuoteWSSOAP12Binding">
            <soap12:address location="
http://localhost:8080/axis2/services/RandomQuoteWS"/>
        </wsdl:port>
        <wsdl:port name="RandomQuoteWSHttpport"
binding="axis2:RandomQuoteWSHttpBinding">
            <http:address location="
http://localhost:8080/axis2/services/RandomQuoteWS"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
xmlns:axis2="http://service.quote"; xmlns:ns1="http://org.apache.axis2/xsd";
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; xmlns:ns0="
http://data.quote"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:mime="
http://schemas.xmlsoap.org/wsdl/mime/"; xmlns:soap="
http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:soap12="
http://schemas.xmlsoap.org/wsdl/soap12/"; targetNamespace="
http://service.quote";>
    <wsdl:types>
        <xs:schema xmlns:ns="http://data.quote";
attributeFormDefault="qualified" elementFormDefault="qualified"
targetNamespace="http://data.quote";>
            <xs:element name="getQuoteResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" name="return"
nillable="true" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:schema>
    </wsdl:types>
    <wsdl:message name="getQuoteRequest"/>
    <wsdl:message name="getQuoteResponse">
        <wsdl:part name="parameters" element="ns0:getQuoteResponse"/>
    </wsdl:message>
    <wsdl:portType name="RandomQuoteWSPortType">
        <wsdl:operation name="getQuote">
            <wsdl:input xmlns:wsaw="
http://www.w3.org/2006/05/addressing/wsdl"; message="axis2:getQuoteRequest"
wsaw:Action="urn:getQuote"/>
            <wsdl:output xmlns:wsaw="
http://www.w3.org/2006/05/addressing/wsdl"; message="axis2:getQuoteResponse"
wsaw:Action="urn:getQuoteResponse"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="RandomQuoteWSSOAP11Binding"
type="axis2:RandomQuoteWSPortType">
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http";
style="document"/>
        <wsdl:operation name="getQuote">
            <soap:operation soapAction="urn:getQuote" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="RandomQuoteWSSOAP12Binding"
type="axis2:RandomQuoteWSPortType">
        <soap12:binding transport="http://schemas.xmlsoap.org/soap/http";
style="document"/>
        <wsdl:operation name="getQuote">
            <soap12:operation soapAction="urn:getQuote" style="document"/>
            <wsdl:input>
                <soap12:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap12:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:binding name="RandomQuoteWSHttpBinding"
type="axis2:RandomQuoteWSPortType">
        <http:binding verb="POST"/>
        <wsdl:operation name="getQuote">
            <http:operation location="RandomQuoteWS/getQuote"/>
            <wsdl:input>
                <mime:content type="text/xml" part="getQuote"/>
            </wsdl:input>
            <wsdl:output>
                <mime:content type="text/xml" part="getQuote"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="RandomQuoteWS">
        <wsdl:port name="RandomQuoteWSSOAP11port_http"
binding="axis2:RandomQuoteWSSOAP11Binding">
            <soap:address location="
http://localhost:8080/axis2/services/RandomQuoteWS"/>
        </wsdl:port>
        <wsdl:port name="RandomQuoteWSSOAP12port_http"
binding="axis2:RandomQuoteWSSOAP12Binding">
            <soap12:address location="
http://localhost:8080/axis2/services/RandomQuoteWS"/>
        </wsdl:port>
        <wsdl:port name="RandomQuoteWSHttpport"
binding="axis2:RandomQuoteWSHttpBinding">
            <http:address location="
http://localhost:8080/axis2/services/RandomQuoteWS"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>

Reply via email to