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";
}