Sending a message from a JSP/Servlet into JMS-Queue with GlassFish (0)
February 11th, 2010 by Frank Niedermann, under Java.
1. Create Connection Factory and Destination Resource in GlassFish admin console:
Resources / JMS Resources / Connection Factory -> New
JNDI-Name: jms/myFactory
Resource-Type: javax.jms.ConnectionFactory
Additional Properties: Remove username and password
Resources / JMS Resources / Destination Resources -> New
JNDI-Name: jms/myQueue
Physical Destination Name: myQueue
Resource Type: javax.jms.Queue
2. Create a new web application in NetBeans, edit index.jsp:
< title>Send Message to JMS-Queue< /title>
< form action="sendMessage">
< table cellspacing="20" >
< tbody>
< tr>
< td>Message:< /td>
< td>< input type="text" name="message" value="" width="30" />< /td>
< /tr>
< /tbody>
< /table>
< input type="submit" value="Send The message" name="send" />
< /form>
3. Create new Servlet sendMessage in web application:
package dummy;
import java.io.*;
import javax.jms.*;
import javax.naming.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class sendMessage extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try{
Context ctx = new InitialContext();
ConnectionFactory connectionFactory = (ConnectionFactory)ctx.lookup("jms/myFactory");
Queue queue = (Queue)ctx.lookup("jms/myQueue");
javax.jms.Connection connection = connectionFactory.createConnection();
javax.jms.Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
MessageProducer messageProducer = session.createProducer(queue);
TextMessage message = session.createTextMessage();
message.setText(request.getParameter("message"));
messageProducer.send(message);
out.println("");
out.println("");
out.println("");
out.println("");
out.println("");
out.println("");
out.print("Message " + request.getParameter("message") + " sent to Queue " + queue.getQueueName() +".");
out.println(" ");
out.println("");
out.println("");
} catch(Exception ex){
ex.printStackTrace();
}
out.close();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
}