You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wsif-dev@ws.apache.org by "Girish Kapoor (JIRA)" <ws...@ws.apache.org> on 2008/02/25 22:46:51 UTC

[jira] Created: (WSIF-93) 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)

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: wsif-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wsif-dev-help@ws.apache.org