3 Replies Latest reply on Mar 7, 2007 4:59 PM by Robert Mlekus

    JBossWS-1.2.0.GA invalid wsdl generated when using @jXmlSche

    Robert Mlekus Newbie

      Hi,

      While the @javax.xml.bind.annotation.XmlSchema annotation within the package-info.java of an class not inheriting from other packages works perfectly, JBossWS generates the following error for derived datatypes:

      14:35:02,173 ERROR [ServiceEndpointPublisher] Cannot obtain waURL for: webservice-test.ear/webservice-test.jar
      14:35:02,283 ERROR [JBossXSErrorHandler] [domain:http://www.w3.org/TR/xml-schema-1]::[key=src-resolve.4.2]::Message=src-resolve.4.2: Error resolving component 'ns1:aClass'. It was detected that 'ns1:aClass' is in namespace 'http://test.org/wsclient/a', but components from this namespace are not referenceable from schema document 'null'. If this is the incorrect namespace, perhaps the prefix of 'ns1:aClass' needs to be changed. If this is the correct namespace, then an appropriate 'import' tag should be added to 'null'.



      The Parameter classes causing this problem are a.AClass, b.Bclass defined in the packages a, and b with the following package-info.java @XmlSchema annotations:

      file a/package-info.java:
      @javax.xml.bind.annotation.XmlSchema(namespace = http://test.org/wsclient/a" )
      package a;
      


      file a/AClass.java:
      package a;
      public class AClass {
       int a;
      
       public int getA() {
       return a;
       }
       public void setA(int testInt) {
       this.a = testInt;
       }
      }
      


      file b/package-info.java:
      @javax.xml.bind.annotation.XmlSchema(namespace = http://test.org/wsclient/b" )
      package b;
      


      file b/BClass.java
      package b;
      
      public class BClass extends a.AClass {
       String b;
      
       public String getB() {
       return b;
       }
       public void setB(String testString) {
       this.b = testString;
       }
      }
      


      The relevant part of the generated WSDL (which is visible under jbossws/service is:

      <xs:schema targetNamespace="http://test.org/wsclient/b" version="1.0">
       <xs:complexType name="bClass">
       <xs:complexContent>
       <xs:extension base="ns1:aClass">
       <xs:sequence>
       <xs:element minOccurs="0" name="b" type="xs:string"/>
       </xs:sequence>
       </xs:extension>
       </xs:complexContent>
       </xs:complexType>
      </xs:schema>
      <xs:schema targetNamespace="http://test.org/wsclient/a" version="1.0">
       <xs:complexType name="aClass">
       <xs:sequence>
       <xs:element name="a" type="xs:int"/>
       </xs:sequence>
       </xs:complexType>
      </xs:schema>
      


      where the declaration of bClass references the ns1 namespace without declaring it.

      The same thing happens when aClass is aggreagated by bClass.

      My Test Envrionment is
      JBossAS 4.0.5, JBossWS-1.2.0.GA (compiled according to the Howto in the Wiki after checking out the sources from svn , installed using the projects deploy-jboss40 ant-target)

      (PS: if this a a new issue I could provide you with the complete example code/maven project to reproduce the problem)

      Best Regards,
      Bertl