You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by "Kraus, David" <dk...@MicroStrategy.com> on 2008/04/17 00:26:42 UTC

RE: Excluding POJO fields from WSDL?

Glen Verran also asked a similar question in his email: "How can I
exclude classes from Axis2?"

 

Does anyone know how to exclude a field from a class, or the whole class
from being included in the WSDL? We both tried the transient approach,
which didn't work.

 

Are there improvements in Axis2 1.3, 1.4 in this area?

 

Thanks, Dave

 

________________________________

From: Kraus, David 
Sent: Tuesday, April 15, 2008 5:51 PM
To: axis-user@ws.apache.org
Subject: excluding pojo fields from wsdl

 

I am using Axis2 1.2 and have deployed a simple service as a POJO. I
created my client using wsld2java based on the WSDL generated from the
POJO service.

 

One of the objects, which is returned from a web service method, has
some public static fields. These fields are being included in the WSDL.
However, since these static fields don't have getters/setters, they
weren't being serialized on return, which caused an "Unexpected element
return" error at the client. Adding getters/setters gets rid of the
problem, as long as the getters/setters are not static ( which is
strange). In any case, these public static fields do not need to be
serialized, and their inclusion in the WSDL causes problems. Using
getters/setters is very awkward since they aren't really needed since
the fields really should be public static final, which I tried using.  I
have also tried using the java transient keyword, but that doesn't seem
to work. I have also tried using excludeProperties (beanPropertyRules)
in services.xml, and that didn't seem to work. Is there a way to exclude
these public static fields from the WSDL generated from the deployed
POJO?

 

Example of return class below:

 

Thanks, Dave

 

 

public class EnumNormal {

      private String _value;

      

      public EnumNormal() {}

      

      public EnumNormal(String value)

      {

            _value = value;

      }

      

      public String getValue()

      {

            return _value;

      }

      

      public void setValue(String value)

      {

            _value = value;

      }

      

      public static String firstEnumVal = "FirstEnumVal";

      public static String secondEnumVal = "SecondEnumVal";

      public static String thirdEnumVal = "ThirdEnumVal";

      public static String fourthEnumVal = "FourthEnumVal";

      public static String fifthEnumVal = "FifthEnumVal";

      

}