Hi Dev;
I went though the metadata module to find out how to create AxisService
using a ServiceImpl class there I faced few issues in
EndpointInterfaceDescriptionImpl  class.
- in line 210 there is a method to process operations in the ServiceImpl
class and that returns all the method in the class including the method
in the java.lang.Object class , so is there a reason for doing that.
 We can fix that changing the method as follows;
private static Method[] getSEIMethods(Class sei) {
        // Per JSR-181 all methods on the SEI are mapped to operations
regardless
        // of whether they include an @WebMethod annotation.  That
annotation may
        // be present to customize the mapping, but is not required (p14)
        Method[] seiMethods = sei.getMethods();
        ArrayList methodList = new ArrayList();
        if (sei != null) {
            for (Method method:seiMethods) {

               
if(method.getDeclaringClass().getName().equals("java.lang.Object")){
                    continue;
                }
                methodList.add(method);
                if (!Modifier.isPublic(method.getModifiers())) {
                    // JSR-181 says methods must be public (p14)
                    // TODO NLS
                    ExceptionFactory.makeWebServiceException("SEI
methods must be public");
                }
                // TODO: other validation per JSR-181
            }
           
        }
        return (Method[])methodList.toArray(new Method[methodList.size()]);
//        return seiMethods;
    }
   

- And I didnt see in the spce (may be I have missed) saying that all the
method should be public in the service impl  class , so please point me
to the spec where you have such a restriction.

Thanks
Deepal



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to