cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Arturo Medecigo (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CXF-5257) cxf-rt-transports-jms jms expiration is not set in JMSUtils.setJMSMessageHeaderProperties()
Date Sat, 07 Sep 2013 11:37:51 GMT
Arturo Medecigo created CXF-5257:
------------------------------------

             Summary: cxf-rt-transports-jms jms expiration is not set in JMSUtils.setJMSMessageHeaderProperties()
                 Key: CXF-5257
                 URL: https://issues.apache.org/jira/browse/CXF-5257
             Project: CXF
          Issue Type: Bug
          Components: Transports
    Affects Versions: 2.7.6, 2.3.9
         Environment: CXf client frontends cxf-rt-frontend-jaxws, cxf-rt-transports-jms version
2.7.5
            Reporter: Arturo Medecigo


When configuring a JaxWsProxyFactoryBean client with a JMSConduit either programmatically,
or via spring configuration, the JMSTimeToLive header property is not set. 


Java code: 

JMSConfiguration jmsConfig =  new JMSConfiguration();			
JNDIConfiguration jndiConfig = new JNDIConfiguration();
JndiTemplate jndiTemplate = new JndiTemplate();
Properties env = new Properties();
JMSConfigFeature jmsFeature = new JMSConfigFeature();
List <Feature> featureList= new ArrayList <Feature>();

env.put(Context.PROVIDER_URL, JMS_BROKER_URL);
env.put(Context.INITIAL_CONTEXT_FACTORY, INITIAL_CONTEXT_FACTORY);
jndiTemplate.setEnvironment(env);
jndiConfig.setJndiConnectionFactoryName(CONNECTION_FACTORY_NAME);			
jndiConfig.setEnvironment(env);		
jmsConfig.setJndiTemplate(jndiTemplate);
jmsConfig.setJndiConfig(jndiConfig);
jmsConfig.setTimeToLive(TIME_TO_LIVE);
jmsConfig.setTargetDestination(JMS_DESTINATION);
jmsConfig.setReplyDestination(JMS_REPLY_DESTINATION);			
jmsFeature.setJmsConfig(jmsConfig);

featureList.add(jmsFeature);			
proxyFactoryProto.setFeatures(featureList);		

proxyFactoryProto.create();

or via spring:


<bean id="proxyFactoryProto" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
	<property name="serviceClass" value="com.myservice.HelloWorld"/>
	<property name="transportId" value="#{T(org.apache.cxf.transport.jms.spec.JMSSpecConstants).SOAP_JMS_SPECIFICATION_TRANSPORTID}"></property>
	
			
	<property name="features">
		<list>
			<ref bean="jmsConfigFeature"/>
		</list>		
	</property>
</bean>
		


<bean id="jmsConfigFeature" class="org.apache.cxf.transport.jms.JMSConfigFeature">
	<property name="jmsConfig" ref="jmsConfig"/>		
	
</bean>

<bean id="jmsConfig" class="org.apache.cxf.transport.jms.JMSConfiguration">
	<property name="connectionFactory" ref="connectionFactory"/>    	
	<property name="timeToLive" value="5000"/>
	<property name="targetDestination" value="service.hello"/>
	<property name="replyDestination" value="service.hello.reply"/>    	
</bean>


To fix it simply uncomment the following code at org.apache.cxf.transport.jms.JMSUtils.setJMSMessageHeaderProperties()

//if (messageProperties.isSetTimeToLive()) {
//	jmsMessage.setJMSExpiration(expiration);
// }

and fix with:

if (messageProperties.isSetTimeToLive()) {      
  	    jmsMessage.setJMSExpiration(messageProperties.getJMSExpiration());
}


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message