problem in doProcess() method in a servlet that posts messag
ilangocal Oct 19, 2008 11:55 AMMy environment is: JBoss 5, Windows Vista.
I have written a servlet that will post messages to queue via a Session Bean Facade. Now this is the error the Netbeans IDE is giving me: The IDE (Netbeans is telling me the following:
incompatible types:
found: javax.jms.QueueSession.CreateProducer
required:javax.jms.MessageProducer
The error is right here on: messageProducer = session.createProducer(queue); in the processRequest(...) method.
Therefore this is what I have in the doProcess method in this servlet,
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String title=request.getParameter("title");
String body=request.getParameter("body");
if ((title!=null) && (body!=null)) {
Queue queue = null;
QueueConnection connection = null;
QueueSession session = null;
MessageProducer messageProducer = null;
try {
InitialContext ctx = new InitialContext();
queue = (Queue) ctx.lookup("queue/mdb");
QueueConnectionFactory factory =
(QueueConnectionFactory) ctx.lookup("ConnectionFactory");
connection = factory.createQueueConnection();
session = connection.createQueueSession(false,QueueSession.AUTO_ACKNOWLEDGE);
messageProducer = session.createProducer(queue);
ObjectMessage message = session.createObjectMessage();
// here we create a Queueing Entity, that will be sent in JMS message
QueueingEntity e = new QueueingEntity();
e.setTitle(title);
e.setBody(body);
message.setObject(e);
messageProducer.send(message);
messageProducer.close();
connection.close();
response.sendRedirect("ListMessages");
} catch (JMSException ex) {
ex.printStackTrace();
} catch (NamingException ex) {
ex.printStackTrace();
}
}
PrintWriter out = response.getWriter();
try {
/* TODO output your page here
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet ServletToPostMessagesOnDexSubmitQueue</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet ServletToPostMessagesOnDexSubmitQueue at " + request.getContextPath () + "</h1>");
out.println("</body>");
out.println("</html>");
*/
} finally {
out.close();
}
}I am not able to figure this out, even though it looks like a simple Java problem.
Any suggestions are appreciated.
thanks