cxf-2.2.3; jaxb 2.1.3; java 1.6

 

Was trying to see where the parameter name was being lost and the differences 
in wsdl for different the different xml parameters (element vs type).  

 

So created a simple xsd:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"; >

    <xsd:element name="e2" type="t2">

    </xsd:element>

    <xsd:complexType name="t2">

        <xsd:sequence>

            <xsd:element name="Child"/>

        </xsd:sequence>

    </xsd:complexType>

</xsd:schema>

 

And a simple ws to access the xjc generated classes:

package test.ws.services;

…

@WebService

public class SampleXJCWS {

  @Oneway

  public void doE2(T2 el) {

    System.out.println("DoE2 = " + el);

  }

…

}

 

The captured wsdl, was invalid, xerces "Namespace URI {} not available in 
schema ws.samplexjc.wsdl":

<wsdl:definitions name="SampleXJCWSService" 
targetNamespace="http://services.ws.test/";

                  xmlns:ns1="http://schemas.xmlsoap.org/wsdl/soap/http";

                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:tns="http://services.ws.test/";

                  xmlns:wsdl=http://schemas.xmlsoap.org/wsdl/

                  xmlns:xsd="http://www.w3.org/2001/XMLSchema";>

    <wsdl:types>

        <xs:schema elementFormDefault="unqualified" 
targetNamespace="http://services.ws.test/"; version="1.0"

                   xmlns:tns="http://services.ws.test/"; 
xmlns:xs=http://www.w3.org/2001/XMLSchema>

…

            <xs:complexType name="doE2">

                <xs:sequence>

                    <xs:element minOccurs="0" name="arg0" type="t2"/>

                </xs:sequence>

            </xs:complexType>

…

        <xs:schema targetNamespace="http://services.ws.test/"; version="1.0" 
xmlns:xs="http://www.w3.org/2001/XMLSchema";>

…

            <xs:complexType name="t2">

                <xs:sequence>

                    <xs:element name="Child" type="xs:anyType"/>

                </xs:sequence>

            </xs:complexType>

…

</wsdl:definitions>

 

 

This can be corrected by adding an xmlns=http://services.ws.test/ to both 
schema declarations.  It is not a problem if a package-info class exists.

 

Reply via email to