You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Michael Ramnarine <MR...@progress.com> on 2009/05/11 05:15:22 UTC

How to set clientReceiveTimeout programatically (without wsdl or spring config)?

I'm trying to set the client receive timeout (and other jms config) via
code rather than spring config or wsdl config like:

  <jms:clientConfig clientReceiveTimeout="1000" />

 

At first glance the following sample is set up to do just what I'm
trying to do:

 
apache-cxf-2.2.1/samples/jms_queue/src/demo/jms_greeter/client/Client.ja
va

 

However when this sample is run with no server running the client takes
the default time to timeout (which is 60 seconds in 2.2.1), rather than
the 1 second that is configured in the code.  Adding the config
mentioned above to the port in wsdl works.  I've tried a few variations
for the key in java, like the following, but this hasn't worked:

 
requestContext.put("org.apache.cxf.transports.jms.ClientConfig.clientRec
eiveTimeout", new Long(1000));

 

Can anyone suggest ways to set this config programmatically rather than
in wsdl or spring? 

 

-Mike

 


RE: How to set clientReceiveTimeout programatically (without wsdl or spring config)?

Posted by Michael Ramnarine <MR...@progress.com>.
It appears that setting org.apache.cxf.jms.client.timeout in the
requestContext has no affect, so someone may want to update the
jms_queue sample.

I was able to use JMSConfiguration object as follows:
  InvocationHandler handler = Proxy.getInvocationHandler(greeter);
  JMSConduit conduit =
    (JMSConduit)ClientProxy.getClient(greeter).getConduit();
  conduit.getJmsConfig().setReceiveTimeout(15000);

This requires the following additional imports:
  import org.apache.cxf.transport.jms.JMSConduit;
  import org.apache.cxf.frontend.ClientProxy;

-Mike

> -----Original Message-----
> From: Michael Ramnarine [mailto:MRAMNARI@progress.com]
> Sent: Sunday, May 10, 2009 11:15 PM
> To: users@cxf.apache.org
> Subject: How to set clientReceiveTimeout programatically (without
> wsdl or spring config)?
> 
> I'm trying to set the client receive timeout (and other jms config)
> via code rather than spring config or wsdl config like:
>   <jms:clientConfig clientReceiveTimeout="1000" />
> 
> At first glance the following sample is set up to do just what I'm
> trying to do:
>   apache-cxf-
> 2.2.1/samples/jms_queue/src/demo/jms_greeter/client/Client.java
> 
> However when this sample is run with no server running the client
> takes the default time to timeout (which is 60 seconds in 2.2.1),
> rather than the 1 second that is configured in the code.  Adding the
> config mentioned above to the port in wsdl works.  I've tried a few
> variations for the key in java, like the following, but this hasn't
> worked:
> 
> requestContext.put("org.apache.cxf.transports.jms.ClientConfig.client
> ReceiveTimeout", new Long(1000));
> 
> Can anyone suggest ways to set this config programmatically rather
> than in wsdl or spring?
> 
> -Mike