DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10087>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=10087 WSDL generation of JavaBean representation includes static fields. Summary: WSDL generation of JavaBean representation includes static fields. Product: Axis Version: beta-2 Platform: All URL: http://www.ford.com OS/Version: All Status: NEW Severity: Major Priority: Other Component: WSDL processing AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] CC: [EMAIL PROTECTED] Java2WSDL and ?WSDL generate wrong WSDL for JavaBean when JavaBean includes public static fields either final or not (Constants or class variables). Should not include these types of fields in the generation of WSDL. The problem code lies in ClassRep.java partial code problem -------------------- protected void addFields(Class cls) { // Constructs a FieldRep for every public field and // for every field that has JavaBean accessor methods for (int i=0; i < cls.getDeclaredFields().length; i++) { Field f = cls.getDeclaredFields()[i]; int mod = f.getModifiers(); if (Modifier.isPublic(mod) || isJavaBeanNormal(cls, f.getName(), f.getType()) || isJavaBeanIndexed(cls, f.getName(), f.getType())) { if (_fieldNames.get(f.getName().toLowerCase()) == null) { FieldRep fr; if (!isJavaBeanIndexed(cls, f.getName(), f.getType())) { fr = new FieldRep(f); } else { fr = new FieldRep(); fr.setName(f.getName()); fr.setType(f.getType().getComponentType()); fr.setIndexed(true); } _fields.add(fr); _fieldNames.put(f.getName().toLowerCase(), fr); } } } ---------------- Proposed fix: ---------------- protected void addFields(Class cls) { // Constructs a FieldRep for every public field and // for every field that has JavaBean accessor methods for (int i=0; i < cls.getDeclaredFields().length; i++) { Field f = cls.getDeclaredFields()[i]; int mod = f.getModifiers(); if (!(Modifier.isStatic(mod)) && (Modifier.isPublic(mod) || isJavaBeanNormal(cls, f.getName(), f.getType()) || isJavaBeanIndexed(cls, f.getName(), f.getType()))) { if (_fieldNames.get(f.getName().toLowerCase()) == null) { FieldRep fr; if (!isJavaBeanIndexed(cls, f.getName(), f.getType())) { fr = new FieldRep(f); } else { fr = new FieldRep(); fr.setName(f.getName()); fr.setType(f.getType().getComponentType()); fr.setIndexed(true); } _fields.add(fr); _fieldNames.put(f.getName().toLowerCase(), fr); } } }