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





------- Additional Comments From [EMAIL PROTECTED]  2002-04-24 15:20 -------
The org.apache.axis.description package now handles the super-classes and 
interfaces correctly, so this particular bug can be closed. However, there is 
one catch:

In the deploy.wsdd, I have to explicitly specify the 'className' paramater. In 
the beta-1 release of Axis, the homeInterfaceName and beanJndiLocation were 
enough to get going. Although Axis can determine the class automatically by 
inspecting the (remote) class that is returned from the ejbHome.create(), it 
does not.

So either we document this behaviour (that 'className' is a required 
parameter), or we fix the code in WSDDService that requires this parameter:

WSDDService.java:
    /**
     * This method can be used for dynamic deployment using new WSDDService()
     * etc.  It validates some standard parameters for some standard providers
     * (if present).  Do this before deployment.deployService().
     */
    public void validateDescriptors()
    {
        String className = this.getParameter("className");
        if (className != null) {
            try {
                // Will this always be the right classloader?
                ClassLoader cl = Thread.currentThread().getContextClassLoader();
                Class cls = cl.loadClass(className);
                desc.setImplClass(cls);
                initTMR();
                String encStyle = (desc.getStyle() == ServiceDesc.STYLE_RPC) ?
                    Constants.URI_CURRENT_SOAP_ENC : "";
                desc.setTypeMapping((TypeMapping)tmr.getTypeMapping(encStyle));
            } catch (Exception ex) {
            }
        }

I have two issues with this code:
1) Please don't use the contextClassLoader, this fails on some app-servers.
2) When using the EJB-Provider, the class has already been loaded using JNDI 
and ejbHome.create(). It should not be necessary to do a Class.forName().

Fixing WSDDService.java has my preference :-)

Reply via email to