wsd2java no-namespace import error
----------------------------------

                 Key: AXIS2-3029
                 URL: https://issues.apache.org/jira/browse/AXIS2-3029
             Project: Axis 2.0 (Axis2)
          Issue Type: Bug
          Components: codegen
    Affects Versions: 1.2
         Environment: WinXP, jdk1.5
            Reporter: Alex Rodriguez
         Attachments: test.wsdl

I have a wsdl that imports a schema with no namespace; I've included a sample 
at the bottom of this email. Trying to generate a client stub fails with both 
xmlbeans and adb, the error is:

Exception in thread "main" 
org.apache.axis2.wsdl.codegen.CodeGenerationException: 
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
        at 
org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:256)
        at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:32)
        at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:21)
Caused by: java.lang.RuntimeException: 
java.lang.reflect.InvocationTargetException
        at 
org.apache.axis2.wsdl.codegen.extension.XMLBeansExtension.engage(XMLBeansExtension.java:103)
        at 
org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:209)
        ... 2 more
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.apache.axis2.wsdl.codegen.extension.XMLBeansExtension.engage(XMLBeansExtension.java:92)
        ... 3 more
Caused by: java.lang.RuntimeException: org.apache.xmlbeans.XmlException: error: 
src-resolve.a: Could not find element '[EMAIL PROTECTED]://some.namespace'. Do 
you mean to refer to the element named AccountBOS?
        at 
org.apache.axis2.xmlbeans.CodeGenerationUtility.processSchemas(CodeGenerationUtility.java:310)
        ... 8 more
Caused by: org.apache.xmlbeans.XmlException: error: src-resolve.a: Could not 
find element '[EMAIL PROTECTED]://some.namespace'. Do you mean to refer to the 
element named AccountBOS?
        at 
org.apache.xmlbeans.impl.schema.SchemaTypeSystemCompiler.compile(SchemaTypeSystemCompiler.java:225)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.apache.xmlbeans.XmlBeans.compileXmlBeans(XmlBeans.java:667)
        at 
org.apache.axis2.xmlbeans.CodeGenerationUtility.processSchemas(CodeGenerationUtility.java:174)

I've independently run xmlbeans generation on this and it succeeds, correctly 
generating AccountBOS in noNamespace. The problem with wsdl2java is that the 
reference to AccountBOS is being assigned a namespace when it shouldn't be, 
this is an import, not an include.

<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns="" 
xmlns:conv="http://www.openuri.org/2002/04/soap/conversation/"; 
xmlns:cw="http://www.openuri.org/2002/04/wsdl/conversation/"; 
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"; 
xmlns:jms="http://www.openuri.org/2002/04/wsdl/jms/"; 
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"; 
xmlns:s="http://www.w3.org/2001/XMLSchema"; xmlns:s0="http://some.namespace"; 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"; 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
targetNamespace="http://some.namespace";>
  <wsdl:types>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";>
      <xs:element name="AccountBOS">
        <xs:complexType>
            <xs:sequence>
                <xs:element type="xs:long" name="Account_ID"/>
            </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>
    <s:schema elementFormDefault="qualified" 
targetNamespace="http://some.namespace"; 
xmlns:s="http://www.w3.org/2001/XMLSchema"; xmlns:acc="http://some.namespace";> 
      <s:import/>
      <s:element name="getAccount">
        <s:complexType>
          <s:sequence>
            <s:element ref="AccountBOS"/>
          </s:sequence>
        </s:complexType>
      </s:element>
    </s:schema>
  </wsdl:types>
  <wsdl:message name="getAccountSoapIn">
      <wsdl:part name="parameters" element="s0:getAccount"/>
    </wsdl:message>
  <wsdl:message name="getAccountSoapOut">
    <wsdl:part name="parameters" element="s0:getAccount"/>
  </wsdl:message>
  <wsdl:portType name="AccountServiceSoap">
    <wsdl:operation name="getAccount">
      <wsdl:input message="s0:getAccountSoapIn"/>
      <wsdl:output message="s0:getAccountSoapOut"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="AccountServiceSoap" type="s0:AccountServiceSoap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http"; 
style="document"/>
    <wsdl:operation name="getAccount">
      <soap:operation soapAction="http://some.namespace/getAccount"; 
style="document"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
    <wsdl:service name="AccountService">
    <wsdl:port name="AccountServiceSoap" binding="s0:AccountServiceSoap">
      <soap:address location="http://localhost:7001/AccountService.jws"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to