ConnectionRunTimeException problem on JMS Application
Hi guys i am developing a JMS application based on durable publish/subscribe model on
netbeans 5.0 running Sun Java App Server 8.0 .I have defined a Connector resource of
resource type TopicConnectionFactory and a Destination resource of resource type Topic ,and registered
both of them with the app server.First i created both of these resources using the JMS Resource wizard, and configured
them both in the web app descriptor(web.xml) and sun web app descriptor(sun-web.xml) but when i try to run the PublishingHandler Servlet
i gives me a ConnectionRuntimeException.I deleted both of these resource,logged in to the app server
and created them afresh on the Admin Server Console.The creation was successful but when i restart the app server and try to run my application
i still get that ConnectionRuntimeException.
Now i don't know how can i configure my application to run,because i have tried all possible configurations.Anyone knowledgeable
about this, plz help me.
Here are snippets from app descriptors and the servlet class
Web Application Descriptor(web.xml)
<resource-ref>
<res-ref-name>jms/sanparksConnectionFactory</res-ref-name>
<res-type>javax.jms.TopicConnectionFactory</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
<resource-ref>
<res-ref-name>jms/sanparksTopics</res-ref-name>
<res-type>javax.jms.Topic</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
Sun Web Application Descriptor(sun-web.xml)
<resource-ref>
<res-ref-name>jms/sanparksConnectionFactory</res-ref-name>
<jndi-name>jms/sanparksConnectionFactory</jndi-name>
</resource-ref>
<resource-ref>
<res-ref-name>jms/sanparksTopics</res-ref-name>
<jndi-name>jms/sanparksTopics</jndi-name>
</resource-ref>
Servlet Source Code(PublishingHandler.java)
package com.mcebo.sanparks.mediator;
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.jms.*;
import javax.naming.*;
//User Defined packages
import com.klaas.sanparks.beans.TopicBean;
import com.mcebo.sanparks.accesslayer.XMLDBProcessor;
public class PublishingHandler extends HttpServlet
{
TopicConnectionFactory factory = null;
TopicConnection connection = null;
TopicSession session = null;
Topic topic = null;
TopicBean sanparkTopic = new TopicBean();
TopicPublisher publisher = null;
XMLDBProcessor dbAcces = new XMLDBProcessor();
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String title = request.getParameter("title");
String category = request.getParameter("category");
String body = request.getParameter("body");
String keyWord = request.getParameter("keyword");
if((!title.equals(null)) && (!category.equals(null))&&(!body.equals(null))&& (!keyWord.equals(null)))
{
sanparkTopic.setTitle(title);
sanparkTopic.setCategory(category);
sanparkTopic.setBody(body);
sanparkTopic.setKeyWord(keyWord);
try
{
Context initContext = new InitialContext();
package com.mcebo.sanparks.mediator;
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.jms.*;
import javax.naming.*;
//User Defined packages
import com.klaas.sanparks.beans.TopicBean;
import com.mcebo.sanparks.accesslayer.XMLDBProcessor;
public class PublishingHandler extends HttpServlet
{
TopicConnectionFactory factory = null;
TopicConnection connection = null;
TopicSession session = null;
Topic topic = null;
TopicBean sanparkTopic = new TopicBean();
TopicPublisher publisher = null;
XMLDBProcessor dbAcces = new XMLDBProcessor();
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String title = request.getParameter("title");
String category = request.getParameter("category");
String body = request.getParameter("body");
String keyWord = request.getParameter("keyword");
if((!title.equals(null)) && (!category.equals(null))&&(!body.equals(null))&& (!keyWord.equals(null)))
{
sanparkTopic.setTitle(title);
sanparkTopic.setCategory(category);
sanparkTopic.setBody(body);
sanparkTopic.setKeyWord(keyWord);
try
{
Context initContext = new InitialContext();
// Context envContext = (Context)initContext.lookup("java:comp/env");
//factory = (TopicConnectionFactory)envContext.lookup("jms/sanparksConnectionFactory");
//topic = (Topic) envContext.lookup("jms/sanparksTopics");
topic = (Topic) initContext.lookup("jms/sanparksTopics");
factory = (TopicConnectionFactory)initContext.lookup("jms/sanparksConnectionFactory");
topic = (Topic) initContext.lookup("jms/sanparksTopics");
connection = factory.createTopicConnection();
session = connection.createTopicSession(false,Session.AUTO_ACKNOWLEDGE);
publisher = session.createPublisher(topic);
ObjectMessage message = session.createObjectMessage();
message.setObject(sanparkTopic);
message.setStringProperty("Category",sanparkTopic.getCategory());
publisher.publish(message);
out.println("Message Published"+ sanparkTopic.getCategory());
out.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/** Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
processRequest(request, response);
}
/** Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
processRequest(request, response);
}
/** Returns a short description of the servlet.
*/
public String getServletInfo()
{
return "Short description";
}
// </editor-fold>
}
factory = (TopicConnectionFactory)initContext.lookup("jms/sanparksConnectionFactory");
topic = (Topic) initContext.lookup("jms/sanparksTopics");
connection = factory.createTopicConnection();
session = connection.createTopicSession(false,Session.AUTO_ACKNOWLEDGE);
publisher = session.createPublisher(topic);
ObjectMessage message = session.createObjectMessage();
message.setObject(sanparkTopic);
message.setStringProperty("Category",sanparkTopic.getCategory());
publisher.publish(message);
out.println("Message Published"+ sanparkTopic.getCategory());
out.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/** Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
processRequest(request, response);
}
/** Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
processRequest(request, response);
}
/** Returns a short description of the servlet.
*/
public String getServletInfo()
{
return "Short description";
}
// </editor-fold>
}

