Hi all,

I have another issue with stateful session EJBs.

In order to manage resources on the server, I want my client to have more fine-grained 
control on the lifecycle of stateful EJBs. I thought I would be able to do this by 
exposing the remove() method as a Web Service, but Axis cannot find this method even 
if I hand-code it into the WSDL (it wouldn't generate WSDL for the remove() method 
using Java2WSDL, but quite possibly for the same root cause as described following). I 
found the culprit in the section of code below. Obviously in the general case it would 
not be desirable to expose java.* or javax.* methods, but javax.ejb.EJBObject.remove() 
seems a reasonable one to me.

Should I file a bug/enhancement request?
Should I move over to the axis-dev list? - I seem to have dug rather deep into the 
code to discover this and it doesn't appear from archives etc. that this use of Axis 
is all that common.
I *may* (no promises) have some time to fix this [I don't imagine my workaround of 
commenting out this line is acceptable to the general Axis community :)] - but am not 
sure what the "right" way to resolve this problem is.

Thanks
Keith


[org.apache.axis.description.ServiceDesc.java, line 914 et seq.]

        if (implClass.isInterface()) {
            Class [] superClasses = implClass.getInterfaces();
            for (int i = 0; i < superClasses.length; i++) {
                Class superClass = superClasses[i];
                if (!superClass.getName().startsWith("java.") &&
                        !superClass.getName().startsWith("javax.") &&
                        (stopClasses == null ||
                        !stopClasses.contains(superClass.getName()))) {
                    loadServiceDescByIntrospectionRecursive(superClass);
                }
            }
        } else {
            Class superClass = implClass.getSuperclass();
            if (superClass != null &&
                    !superClass.getName().startsWith("java.") &&
                    !superClass.getName().startsWith("javax.") &&
                    (stopClasses == null ||
                        !stopClasses.contains(superClass.getName()))) {
                loadServiceDescByIntrospectionRecursive(superClass);
            }
        }

Keith Hatton

Axiom Systems Limited          Phone:   +44 (0)118 929 4000
69 Suttons Business Park       Fax:     +44 (0)118 929 4001
Sutton Park Avenue             DDI:     +44 (0)118 929 4225
Reading                        E-Mail:  [EMAIL PROTECTED]
Berkshire, RG6 1AZ             Web:     www.axiomsystems.com

Reply via email to