[ https://issues.apache.org/jira/browse/CXF-5257?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Daniel Kulp resolved CXF-5257. ------------------------------ Resolution: Fixed Fix Version/s: 2.7.7 2.6.10 Assignee: Daniel Kulp > 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.3.9, 2.7.6 > Environment: CXf client frontends cxf-rt-frontend-jaxws, > cxf-rt-transports-jms version 2.7.5 > Reporter: Arturo Medecigo > Assignee: Daniel Kulp > Labels: easyfix > Fix For: 2.6.10, 2.7.7 > > Original Estimate: 4h > Remaining Estimate: 4h > > 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