Hi Guillaume,

Is it possible that you send me your project working copy? It would be easier for me to debug and test it.
Best Regards

Freeman


tog wrote:
Freeman,

Thanks, I now get into the right method but get an another weird exception
that I did not get time yet to explore deeper.

10 sept. 2007 08:20:21
org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback onClose
INFO: Outbound Message
--------------------------------------
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";><soap:Body
/></soap:Envelope>
--------------------------------------
10 sept. 2007 08:20:21
org.apache.cxf.interceptor.LoggingInInterceptorhandleMessage
INFO: Inbound Message
--------------------------------------
Headers: {null=[HTTP/1.1 200 OK], transfer-encoding=[chunked],
Server=[Jetty(6.1.x)]}
Message:

--------------------------------------
10 sept. 2007 08:20:21 org.apache.cxf.phase.PhaseInterceptorChaindoIntercept
INFO: Interceptor has thrown exception, unwinding now




INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.binding.soap.SoapFault: Error reading XMLStreamReader.
        at
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage
(ReadHeadersInterceptor.java:189)
        at
org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage
(ReadHeadersInterceptor.java:57)
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
PhaseInterceptorChain.java:207)
        at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:395)
        at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse
(HTTPConduit.java:1932)
        at
org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(
HTTPConduit.java:1790)
        at org.apache.cxf.transport.AbstractConduit.close(
AbstractConduit.java:66)
        at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java
:576)
        at
org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
(MessageSenderInterceptor.java:62)
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
PhaseInterceptorChain.java:207)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
        at groovyx.net.ws.WSClient.invokeMethod(WSClient.java:50)


On 9/10/07, Freeman Fang <[EMAIL PROTECTED]> wrote:
Hi Guillaume,

Try to use
Object[] response = client.invoke(op, (Object[])objs, context)
but not
client.invoke(op, (Object[])objs, context, null)
Since in Client.java, there is no api for client.invoke(op,
(Object[])objs, context, null), so if you use client.invoke(op,
(Object[])objs, context, null), it would be delegate to invoke(boi,
Object ...)
But if you use client.invoke(op, (Object[])objs, context), it would be
delegate to invoke(BindingOperationInfo oi,
                    Object[] params,
                    Map<String, Object> context)
You can see in JaxWsClientTest.java, line 137
Object ret[] = client.invoke(bop, new Object[] {"hi"}, null);
It is run into  invoke(BindingOperationInfo oi,
                    Object[] params,
                    Map<String, Object> context) but not
invoke(BindingOperationInfo oi,
                    Object... params)
if you debug in.


Best Regards

Freeman

tog wrote:
Hi Freeman,



The stacktrace shows Object[] invoke(BindingOperationInfo oi, Object...
params) is invoked, but not the
Object[] invoke(BindingOperationInfo oi,
                           Object[] params,
                           Map<String, Object> context,
                           Exchange exchange)
as we want. Would you please check your goovy rumtime invoker to make
sure it just pass in all paras to cxf ClientImpl?

The call is made in Java ... and here is the invoker:

    public Object invokeMethod(String name, Object args) {
        Object[] objs = InvokerHelper.getInstance().asArray(args);

        try {

            QName qname = new
QName(client.getEndpoint().getService().getName().getNamespaceURI(),
name);
            BindingOperationInfo op = client.getEndpoint
().getEndpointInfo().getBinding().getOperation(qname);

            System.out.println("-> " + qname.toString() + "  -  " +
op.toString());

            Object[] response = client.invoke(op, (Object[])objs,
context,
null);

...

As you can see I do invoke the 4 args methods ... ?

How can it make the difference between:

  invoke(boi, Object ...)  and invoke(boi, Object[], Map, Exchange)
these
are all objects. Isn't  it ?

Regards
Guillaume





Reply via email to