I'm not sure, but I think you need to change this:

.setEndpointUri("jms://bookstoreResponse");


to this:

.setEndpointUri("jms://BookstoreService");


sw

ps. I've had lots of problems with the JMS implementation (to the point that I question whether anyone has ever used the code from the distribution in a real production system). I ended up having to write my own replacements for the Transport and Channel in order to make it work.


Willard, Keith wrote:

Apologies for accidentally sending this to the dev list:-)

This may be similar problem that of http://www.mail-archive.com/[email protected]/msg02212.html

I am using XFire 1.2.4 release

1) I have service that was created by starting with WSDL and used the wsgen tool defaulting to the JAXB bindings

2) The default generated client works properly against the implemented service running over http

3) Following the echo example for running the client over JMSTransport does result in the service being invoked and apparently identical xml coming back to the proxy and being successfully delivered through the client’s JMSTransports onMessage() method

4) But then during the handling of the response in the handler pipeline a _org.codehaus.xfire.XFireRuntimeException_: Could not invoke service.. exception is thrown.

I have included a fragment of the debug log and the stack trace, the client setup code, the service interface definition fragment, and a fragment of the returned soap message.

Does anyone have any suggestions as to what I am doing incorrectly or further analysis steps I can take?

Thanks,

--Keith Willard

============debug log fragement========================

1250 [ActiveMQ Session Task] DEBUG org.codehaus.xfire.client.Client - Correlating context with ID 11751922475170-1326264516

1250 [ActiveMQ Session Task] DEBUG org.codehaus.xfire.client.Client - Found correlated context with ID 11751922475170-1326264516

1250 [ActiveMQ Session Task] DEBUG org.codehaus.xfire.handler.HandlerPipeline - adding handler [EMAIL PROTECTED] to phase service

1250 [ActiveMQ Session Task] DEBUG org.codehaus.xfire.handler.HandlerPipeline - Invoking phase dispatch

1250 [ActiveMQ Session Task] DEBUG org.codehaus.xfire.handler.HandlerPipeline - Invoking phase policy

1250 [ActiveMQ Session Task] DEBUG org.codehaus.xfire.handler.HandlerPipeline - Invoking phase user

1250 [ActiveMQ Session Task] DEBUG org.codehaus.xfire.handler.HandlerPipeline - Invoking handler org.codehaus.xfire.client.ClientFaultConverter in phase user

1250 [ActiveMQ Session Task] DEBUG org.codehaus.xfire.handler.HandlerPipeline - Invoking phase pre-invoke

1250 [ActiveMQ Session Task] DEBUG org.codehaus.xfire.handler.HandlerPipeline - Invoking phase service

1250 [ActiveMQ Session Task] DEBUG org.codehaus.xfire.handler.HandlerPipeline - Invoking handler org.codehaus.xfire.client.ClientReceiveHandler in phase service

Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Index: 0, Size: 0

_org.codehaus.xfire.XFireRuntimeException_: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Index: 0, Size: 0

org.codehaus.xfire.fault.XFireFault: Index: 0, Size: 0

at org.codehaus.xfire.fault.XFireFault.createFault(_XFireFault.java:89_)

at org.codehaus.xfire.client.Client.onReceive(_Client.java:386_)

at org.codehaus.xfire.transport.AbstractChannel.receive(_AbstractChannel.java:38_)

=======================This is what the client setup code looks like============

ObjectServiceFactory sf = *new* org.codehaus.xfire.jaxb2.JaxbServiceFactory(

getTransportManager());

sf.addSoap11Transport(JMSTransport./BINDING_ID/);

// Create the service model

Service serviceModel = sf.create(BookstoreService.*class*);

// Create a proxy for the service

XFireProxyFactory factory = *new* XFireProxyFactory(getXFire());

BookstoreService proxy = (BookstoreService) factory.create(serviceModel, "jms://BookstoreService");

// Since JMS doesn't really have a concept of anonymous endpoints, we need

// need to let xfire know what JMS endpoint we should use

((XFireProxy) Proxy./getInvocationHandler/(proxy)).getClient()

.setEndpointUri("jms://bookstoreResponse");

ArrayOfBook1 books=proxy.getTopSellers();

=======service interface definition fragment==============================================

@WebMethod(operationName = "getTopSellers", action = "urn:Bookstore/BookstoreService/getTopSellers")

@WebResult(name = "getTopSellersResult", targetNamespace = "urn:Bookstore")

*public* ArrayOfBook1 getTopSellers();

===== fragment of xml response===========================

<soap:Body>

<getTopSellersResponse xmlns="urn:Bookstore">

<getTopSellersResult>

<Book>

<authors>

..rest of the message


---------------------------------------------------------------------
To unsubscribe from this list please visit:

   http://xircles.codehaus.org/manage_email

Reply via email to