cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Amichai Rothman (JIRA)" <>
Subject [jira] [Created] (CXF-6737) ClientProxyFactoryBean doesn't work with void methods
Date Wed, 06 Jan 2016 18:21:39 GMT
Amichai Rothman created CXF-6737:

             Summary: ClientProxyFactoryBean doesn't work with void methods
                 Key: CXF-6737
             Project: CXF
          Issue Type: Bug
    Affects Versions: 3.1.1
         Environment: DOSGi 1.7.0
            Reporter: Amichai Rothman

I'm trying to use a simple ClientProxyFactoryBean to connect to a dosgi-exported service.
Without specifying the wsdl url, it doesn't work since apparently the method argument names
don't match (arg0 vs actual parameter name, as explained in CXF-897), so I added the wsdl
url. Now service methods that have a return value seem to work ok, but those with void return
type do not.

Further investigation suggests that the issue might be in ReflectionServiceFactoryBean: initializeWSDLOperation
prints out a warning (no method for op) instead of binding the operation, because initializeClassInfo
returns false, because initializeParameter called with the return type (near the bottom of
initializeClassInfo) returns false, since o.getOutput().getMessagePart/getMessagePartByIndex
return null (since there are no parts - the method can throw an exception, for which the output
message exists, but there is no actual return type).

A quick test in the debugger shows that if I manipulate the flow manually (e.g. execute the
if caluse in initializeWSDLOperation after initializeClassInfo returns) then the method invocation
works ok.

I am not familiar with the inner workings of WSDL or these classes, so I'm not sure what is
the correct place to apply a fix.

This message was sent by Atlassian JIRA

View raw message