nuwan.wp wickramanayaka [
https://community.jboss.org/people/nuwan.wp] created the
discussion
"Re: Spring JMS error with JBoss 7.1.1-Final"
To view the discussion, visit:
https://community.jboss.org/message/826340#826340
--------------------------------------------------------------
message-queue-config.spring.xml
-------------------------------
<!-- Jndi properies for accessing Jboss 7.1 Hornet Queue -->
<bean id="jnditemplate"
class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop
key="java.naming.factory.initial">org.jboss.naming.remote.client.InitialContextFactory
</prop>
<prop
key="java.naming.provider.url">remote://${sampleweb.server.ip}:4447</prop>
<prop
key="java.naming.security.principal">uanmcts</prop>
<prop
key="java.naming.security.credentials">password</prop>
</props>
</property>
</bean>
<!-- Jms connection configurations -->
<bean id="connectionfactory"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate"
ref="jnditemplate" />
<property name="jndiName"
value="jms/RemoteConnectionFactory" />
</bean>
<!-- Jms queue configurations -->
<bean id="destination"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate"
ref="jnditemplate" />
<property name="jndiName"
value="jms/queue/mail" />
</bean>
<!-- Credentials for accessing jboss queue -->
<bean id="credentialsconnectionfactory"
class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
<property name="targetConnectionFactory"
ref="connectionfactory" />
<property name="username" value="uanmcts"
/>
<property name="password" value="password"
/>
</bean>
<bean id="cachingConnectionFactory"
class="org.springframework.jms.connection.CachingConnectionFactory">
<property name="targetConnectionFactory"
ref="connectionfactory" />
<property name="sessionCacheSize" value="1"
/>
</bean>
<!-- Jms template configurations -->
<bean id="jmstemplate"
class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory"
ref="cachingConnectionFactory" />
<property name="defaultDestination"
ref="destination" />
</bean>
<bean id="messageService"
class="com.jkcs.uanmcts.core.messaging.service.impl.EmailMessageServiceImpl">
<property name="jmsTemplate" ref="jmstemplate"
/>
</bean>
<!-- Jms message Listner configurations -->
<bean
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory"
ref="credentialsconnectionfactory" />
<property name="destination" ref="destination"
/>
<property name="messageListener"
ref="messageService" />
<property name="autoStartup" value="true"
/>
<property name="concurrentConsumers" value="5"
/>
<property name="maxConcurrentConsumers"
value="10" />
</bean>
Refer bean 'messageService'
----------------------------
@InternalService
@Transactional(propagation = Propagation.REQUIRED, readOnly = false)
public class EmailMessageServiceImpl implements EmailMessageService {
private static final Log LOG = LogFactory
.getLog(EmailMessageServiceImpl.class);
@Autowired
private JmsTemplate jmsTemplate;
@Autowired
JKCSMailSender emailSender;
@Override
public Boolean sendEmailToQueue(final TemplatedEmailDTO messageDto)
throws FrameworkServiceException {
Boolean isEmailSent = false;
LOG.info("Trying to send email message on queue.");
try {
getJmsTemplate().send(new MessageCreator() {
public Message createMessage(Session session)
throws JMSException {
ObjectMessage objectMessage =
session.createObjectMessage(messageDto);
objectMessage.setJMSRedelivered(false);
objectMessage.setJMSExpiration(0);
/*Value of 0 indicates that a message will never expire*/
return objectMessage;
}
});
isEmailSent = true;
LOG.info("Email message has been successfully sent to the
queue.");
} catch (Exception e) {
isEmailSent = false;
LOG.info("Email message failed while sending to the
queue.");
}
return isEmailSent;
}
@Override
public void onMessage(Message message) {
LOG.info("Email message received from queue [" + message
+"]");
try {
if(message!=null)
{
message.acknowledge();
if (message instanceof ObjectMessage) {
ObjectMessage objectMessage =
(ObjectMessage) message;
TemplatedEmailDTO emailDto =
(TemplatedEmailDTO) objectMessage.getObject();
emailSender.send(emailDto);
LOG.info("Email message has been
successfully sent.");
}
}
else
{
LOG.info("Null email message
received.");
}
} catch (JMSException jmsEx_p) {
String errMsg = "An error occurred extracting
message";
LOG.error(errMsg, jmsEx_p);
throw new FrameworkServiceException();
}
}
public JmsTemplate getJmsTemplate() {
return jmsTemplate;
}
public void setJmsTemplate(JmsTemplate jmsTemplate) {
this.jmsTemplate = jmsTemplate;
}
}
--------------------------------------------------------------
Reply to this message by going to Community
[
https://community.jboss.org/message/826340#826340]
Start a new discussion in JBoss Messaging at Community
[
https://community.jboss.org/choose-container!input.jspa?contentType=1&...]