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