You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Bjorn Townsend (JIRA)" <ax...@ws.apache.org> on 2006/02/28 03:18:55 UTC

[jira] Commented: (AXIS-2418) Unable to find Java method when method isn't allowed

    [ http://issues.apache.org/jira/browse/AXIS-2418?page=comments#action_12368065 ] 

Bjorn Townsend commented on AXIS-2418:
--------------------------------------

David, from looking at the Axis source this seems to be by design.  The method getSyncedOperationsForName in JavaServiceDesc.java is called to synchronize the OperationDescs with the implementation class, and at that point methods are checked to see if they are allowed or disallowed.

        // Skip it if it's not a sanctioned method name
        if ((allowedMethods != null) &&
            !allowedMethods.contains(methodName))
            return;

        if ((disallowedMethods != null) &&
            disallowedMethods.contains(methodName))
            return;

>From this we can infer that the following cases are possible:

* explicitly allow some methods and disallow all others (allowMethods contains one or more methods, disallowMethods is null)
* explicitly allow all methods (allowMethods is null or contains the wildcard * character)
* explicitly disallow some methods and allow all others (disallowMethods contains one or more methods, allowMethods is null or *)
* explicitly disallow all methods (this would be silly, but what the heck) 

So my opinion is that this is working as designed.  

> Unable to find Java method when method isn't allowed
> ----------------------------------------------------
>
>          Key: AXIS-2418
>          URL: http://issues.apache.org/jira/browse/AXIS-2418
>      Project: Apache Axis
>         Type: Bug
>   Components: Basic Architecture
>     Versions: 1.3
>     Reporter: David Brandow
>     Priority: Critical
>  Attachments: echo.jar, server-config.wsdd
>
> I have a service that works fine when all the methods are allowed, either by listing them all explicitly or by using an asterisk, but if one of those methods is not in allowedMethods (whether its in disallowedMethods is irrelevant), the service won't work. This is the exception I'm getting:
> Caused by: java.lang.Exception: Couldn't find a matching Java operation for WSDD operation "echoFloat" (1 args)
>     | at org.apache.axis.InternalException.<init>(InternalException.java:71)
>     | at org.apache.axis.description.JavaServiceDesc.loadServiceDescByIntrospection(JavaServiceDesc.java:902)
>     | at org.apache.axis.providers.java.JavaProvider.initServiceDesc(JavaProvider.java:477)
>     | at org.apache.axis.handlers.soap.SOAPService.getInitializedServiceDesc(SOAPService.java:285)
>     | at org.apache.axis.deployment.wsdd.WSDDService.makeNewInstance(WSDDService.java:500)
>     | at org.apache.axis.deployment.wsdd.WSDDDeployableItem.getNewInstance(WSDDDeployableItem.java:274)
>     | at org.apache.axis.deployment.wsdd.WSDDDeployableItem.getInstance(WSDDDeployableItem.java:260)
>     | at org.apache.axis.deployment.wsdd.WSDDDeployment.getService(WSDDDeployment.java:427)
>     | at org.apache.axis.configuration.FileProvider.getService(FileProvider.java:231)
>     | at org.apache.axis.AxisEngine.getService(AxisEngine.java:311)
>     | at org.apache.axis.MessageContext.setTargetService(MessageContext.java:755)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira