ws-wsif-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Girish Kapoor (JIRA)" <wsif-...@ws.apache.org>
Subject [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)
Date Mon, 25 Feb 2008 21:46:51 GMT
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


Mime
View raw message