On Monday 03 December 2007, Glen Mazza wrote:
> Am Montag, den 03.12.2007, 14:17 -0500 schrieb Daniel Kulp:
> > Guillaume,
> >
> > Did some more digging.    This is related to:
> > https://issues.apache.org/jira/browse/CXF-885
> >
> >
> > Basically, the "GetRemainingHits" is killing things.   As soon as
> > CXF sees a method that is not wrapped/wrappable, CXF doesn't add any
> > of the interceptors for the wrapped cases.   :-(    For JAX-WS, that
> > would be OK as we just add the annotation that says "make everything
> > bare" and we're OK.   The Dynamic client, on the other hand, doesn't
> > have that ability.   This may be quite a bit of work to really fix.
> >
> > One workaround that the groovy stuff COULD do is lookup the
> > BindingOperationInfo object itself and pass that into the invoke
> > method that takes it.   You can pass the "unwrapped" version in and
> > it should work.
>
> I'm not so sure.  This problem is also occurring with the Java version
> of this code (using CXF's DynamicClient) that Guillaume just sent
> today --I just duplicated it.  I don't think the Groovy code can fix
> this problem--it's inherent with the DynamicClient CXF code that the
> Groovy code sits on top of.
>
> Glen

Right.   However, the java code that groovy invokes CAN workaround it.   
If you take Guillaume's example and change:

Object[] response = client.invoke("GetTeamInfoByCity", obj);
to something like:

BindingOperationInfo bop = ...  lookup operation from service model....
Object[] response = client.invoke(bop, "ID", "PASS", "New England");

then it SHOULD work.   The trick is getting the bop.    I THINK this 
should work:
BindingOperationInfo op = 
client 
.getEndpoint().getEndpointInfo().getBinding().getOperation(operationName);

In anycase, I have a fix for CXF-885 that will allow:
Object[] response = 
client.invoke("GetTeamInfoByCity",  "ID", "PASS", "New England");
to work.   Testing that now.

-- 
J. Daniel Kulp
Principal Engineer
IONA
P: 781-902-8727    C: 508-380-7194
[EMAIL PROTECTED]
http://www.dankulp.com/blog

Reply via email to