WSIFException: Method nnn not found in PortType, is thrown by the web service 
if the Input Message is wrapped message (i.e. Input is a Complex Java Type)
---------------------------------------------------------------------------------------------------------------------------------------------------------

                 Key: WSIF-93
                 URL: https://issues.apache.org/jira/browse/WSIF-93
             Project: Axis-WSIF
          Issue Type: Bug
          Components: Basic Architecture
    Affects Versions: 2.0, 2.1, future
            Reporter: Girish Kapoor


WSIFException: Method nnn not found in PortType, is thrown by the web service 
if the Input Message is wrapped message (i.e. Input is a Complex Java Type)
This issue can be fixed by changing the following code in the WSIFClientProxy 
class:
In the method: Object invoke(Object proxy, Method method, Object[] args), Line 
291 existing code is:
        if (inputParts.size() != args.length) {
                unWrapIfWrappedDocLit(inputParts, operation.getName());
        }
This needs to be replaced by the following code:
         boolean foundWrappedMessage = inputMessage.getPart("parameters") != 
null 
                                && inputMessage.getParts() != null && 
inputMessage.getParts().size() == 1;
        
         if (inputParts.size() != args.length || foundWrappedMessage) {
                unWrapIfWrappedDocLit(inputParts, operation.getName());
         }

In the method: Operation findMatchingOperation(Method method, Object[] args), 
Line 469 existing code is:
            // No match if there are different numbers of parameters
            if (types != null && (numInputParts != types.length)) {
                unWrapIfWrappedDocLit(inputParts, operation.getName());
                numInputParts = inputParts.size();
                if (numInputParts != types.length) {
                    continue;
                }
            }
This needs to be replaced by the following code:
            boolean foundWrappedMessage = inputMessage.getPart("parameters") != 
null 
                                && inputMessage.getParts() != null && 
inputMessage.getParts().size() == 1;
            
            if (types != null && (numInputParts != types.length || 
foundWrappedMessage)) {
                unWrapIfWrappedDocLit(inputParts, operation.getName());
                numInputParts = inputParts.size();
                if (numInputParts != types.length) {
                    continue;
                }
            }


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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

Reply via email to