Hello everyone,

I trying to solve the following problem I have a class that looks something like this:

public class Security {
        
        private int securityType;
        private Object userData;
        private String label;

        [get/set methods deleted]

}

I want user data to be typeless so I can pass in some data from clients that have 
special knowledge of server capabilities. But I only want special clients to pass in 
this data. In other words I don't
want the type of userData to be known to clients in general.

As you can see this gives me a rudimentary mechanism for server API versioning. This 
is what I'm really after but haven't looked into it enough to provide a robust 
solution so I'm going with this
kludge for now.

Now the issue is that in the wsdl file axis generates

- <complexType abstract="true" name="Security">
- <sequence>
  <element name="label" nillable="true" type="xsd:string" /> 
  <element name="securityType" type="xsd:int" /> 
  <element name="userData" nillable="true" type="tns1:Object" /> 
  </sequence>

and then further down

- <complexType name="Object">
  <sequence /> 
  </complexType>

So then WSDLJava generates a class called Object. Which is somewhat undesirable but 
still workable. What I wanted was to see userData element declared as xsd:anyType and 
then have WSDL2Java use
java.lang.Object as opposed to somepackage.Object. (It takes the name of somepackage 
from the wsdd file).

So my questions are these:

1. How do I declare a member variable that maps to type xsd:anyType.
2. What would WSDL2Java generate when it sees xsd:anyType.
3. What techniques should I use to provide server api versioning.

Best Regards and thanks in advance for any comments.

Vincent

Reply via email to