You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Trudi Ersvaer (JIRA)" <ji...@apache.org> on 2009/07/06 04:39:14 UTC

[jira] Updated: (AXIS2-4421) Inner classes without WSDL XSD definition

     [ https://issues.apache.org/jira/browse/AXIS2-4421?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Trudi Ersvaer updated AXIS2-4421:
---------------------------------

    Description: 
I have an operation with a method signature like...

    public MyClass.MyInner myInner(MyClass.MyInner myInner)
    {
        return myInner;
    }

The MyClass class looks like...

public class MyClass
{
    String name;
    MyInner myInner;

    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public MyInner getMyInner()
    {
        return myInner;
    }

    public void setMyInner(MyInner myInner)
    {
        this.myInner = myInner;
    }

    public static class MyInner
    {
        String name;

        public String getName()
        {
            return name;
        }

        public void setName(String name)
        {
            this.name = name;
        }
    }
}

The WSDL doesn't expose the correct XSD for the inner class....

            <xs:complexType name="MyClass$MyInner">
                <xs:sequence/>
            </xs:complexType>

I think there should be an element within the sequence that defines the 'name' field of the inner class.

The problem with the above WSDL XSD snippet is that when using a tool such as WsdlToJava (by CXF), the code generated for the inner class is empty and therefore unusable... 

public class MyClass$MyInner {

}

I think this is a bug, if it isn't could someone explain why please?

  was:
I have an operation with a method signature like...

    public MyClass.MyInner myInner(MyClass.MyInner myInner)
    {
        return myInner;
    }

The MyClass class looks like...

public class MyClass
{
    String name;
    MyInner myInner;

    public String getName()
    {
        return name;
    }

    public void setName(String name)
    {
        this.name = name;
    }

    public MyInner getMyInner()
    {
        return myInner;
    }

    public void setMyInner(MyInner myInner)
    {
        this.myInner = myInner;
    }

    public static class MyInner
    {
        String name;

        public String getName()
        {
            return name;
        }

        public void setName(String name)
        {
            this.name = name;
        }
    }
}

The WSDL doesn't expose the correct XSD for the inner class....

            <xs:complexType name="MyClass$MyInner">
                <xs:sequence/>
            </xs:complexType>

I think there should be an element within the sequence that defines the 'type' field of the inner class.

The problem with the above WSDL XSD snippet is that when using a tool such as WsdlToJava (by CXF), the code generated for the inner class is empty and therefore unusable... 

public class MyClass$MyInner {

}

I think this is a bug, if it isn't could someone explain why please?


> Inner classes without WSDL XSD definition
> -----------------------------------------
>
>                 Key: AXIS2-4421
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4421
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: wsdl
>    Affects Versions: 1.3
>         Environment: XP, Java 1.6.0_12
>            Reporter: Trudi Ersvaer
>
> I have an operation with a method signature like...
>     public MyClass.MyInner myInner(MyClass.MyInner myInner)
>     {
>         return myInner;
>     }
> The MyClass class looks like...
> public class MyClass
> {
>     String name;
>     MyInner myInner;
>     public String getName()
>     {
>         return name;
>     }
>     public void setName(String name)
>     {
>         this.name = name;
>     }
>     public MyInner getMyInner()
>     {
>         return myInner;
>     }
>     public void setMyInner(MyInner myInner)
>     {
>         this.myInner = myInner;
>     }
>     public static class MyInner
>     {
>         String name;
>         public String getName()
>         {
>             return name;
>         }
>         public void setName(String name)
>         {
>             this.name = name;
>         }
>     }
> }
> The WSDL doesn't expose the correct XSD for the inner class....
>             <xs:complexType name="MyClass$MyInner">
>                 <xs:sequence/>
>             </xs:complexType>
> I think there should be an element within the sequence that defines the 'name' field of the inner class.
> The problem with the above WSDL XSD snippet is that when using a tool such as WsdlToJava (by CXF), the code generated for the inner class is empty and therefore unusable... 
> public class MyClass$MyInner {
> }
> I think this is a bug, if it isn't could someone explain why please?

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