'JBoss Spring JMS Exception : java.lang.NoClassDefFoundError: org/springframework/jms/core/MessageCreator
ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host]. [/testPortal]] (ServerService Thread Pool -- 81) JBWEB000287: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener: java.lang.NoClassDefFoundError: org/springframework/jms/core/MessageCreator
The Spring JMS has taken against me. I am trying to setup Spring JMS on JBoss AS 7.
Here is the below Excerpt from my JMS Controller. Can someone please guide me through this error?
import org.apache.log4j.Logger;
import org.springframework.http.MediaType;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.jms.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Controller
@RequestMapping(value ="/spring-jms")
public class SpringJmsController {
private JmsTemplate jmsTemplate;
private Logger logger = Logger.getLogger(SpringJmsController.class);
public JmsTemplate getJmsTemplate() {
return jmsTemplate;
}
public void setJmsTemplate(JmsTemplate jmsTemplate) {
this.jmsTemplate = jmsTemplate;
}
private Queue ticketQueue;
public Queue getTicketQueue() {
return ticketQueue;
}
public void setTicketQueue(Queue ticketQueue) {
this.ticketQueue = ticketQueue;
}
@RequestMapping(value = "/produce-me", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public void saveMessage( HttpServletRequest request, HttpServletResponse response) throws IOException, JMSException {
getJmsTemplate().send(getTicketQueue(),new MessageCreator() {
@Override
public Message createMessage(Session session) throws JMSException {
return session.createTextMessage("Hello Spring JMS!!!");
}
});
logger.info("Sent message to the queue ....");
response.setStatus(HttpServletResponse.SC_ACCEPTED);
}
}
I have added the required spring-tx.jar and the spring-jms.jar. I am sure that I am missing a jar , but not sure which one :( Please help.
UPDATE Got this resolved the spring jms jar was missing on the classpath.
Solution 1:[1]
Got this resolved the spring jms jar was missing on the classpath.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Vakz83 |
