[ 
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

Reply via email to