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=7722>. 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=7722 Extended interfaces do not show up in WSDL Summary: Extended interfaces do not show up in WSDL Product: Axis Version: beta-1 Platform: Other OS/Version: Other Status: NEW Severity: Normal Priority: Other Component: Deployment / Registries AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] Situation: interface BaseInterface; interface ExtendedInterface extends BaseInterface; JavaProvider uses the ExtendedInterface as a class, useInheritedMethods is set to true. The methods in the BaseInterface do not show up in the WSDL. Solution: in ClassRep.java, the walkInheritanceChain() and addMethods() methods use recursion, but only one level deep. The following one-liner fixes it: // add methods from interfaces Class[] interfaces = cls.getInterfaces(); for (int i=0; i < interfaces.length; i++) { - walkInheritanceChain(interfaces[i], inhMethods, implClass); + addMethods(interfaces[i], inhMethods, implClass); } This makes sure that 'addMethods' is called recursive, instead of calling 'walkInheritanceChain' recursive. The latter method only supports 'getSuperClass()', while the addMethods() call will also consider interfaces (and interfaces of interfaces). As a side-note: The code in the init() method seems redundant (and useless too). The gathered list of interfaces and superclasses is never used, and because the ClassRep constructor is called recursively, it loses that information (_interfaces and _methods are members of ClassRep).