0 Replies Latest reply on Apr 25, 2008 2:36 AM by Dev Adhikary

    The requested resource (/NewsApp-war/ListNews) is not availa

    Dev Adhikary Newbie

      Hi!
      I am Basudev.
      I am trying to run a simple enterprise application. My application's name is 'NewsApp' and I have used jboss-5.0.0.Beta4 , jdk1.6.0 and Netbean IDE 6.1.When I run my application then server throw the requested resource (/NewsApp-war/ListNews) is not available.

      Here is my code
      1.ListNews.java
      package web;

      import ejb.NewsEntity;
      import ejb.NewsEntityFacadeLocal;
      import java.io.*;
      //import java.net.*;

      import java.util.Iterator;
      import java.util.List;
      import javax.ejb.EJB;
      import javax.servlet.*;
      import javax.servlet.http.*;

      public class ListNews extends HttpServlet {
      @EJB
      private NewsEntityFacadeLocal newsEntityFacade;

      protected void processRequest(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      response.setContentType("text/html;charset=UTF-8");
      PrintWriter out = response.getWriter();
      try {

      out.println("");
      out.println("");
      out.println("Servlet ListNews");
      out.println("");
      out.println("");
      out.println("<h1>Servlet ListNews at " + request.getContextPath () + "</h1>");
      //newsEntityFacade = (NewsEntityFacadeLocal) lookupNewsEntityFacade();
      List news = newsEntityFacade.findAll();
      for (Iterator it = news.iterator(); it.hasNext();) {
      NewsEntity elem = (NewsEntity) it.next();
      out.println(" "+elem.getTitle()+" ");
      out.println(elem.getBody()+" ");
      }
      out.println("Add new message");

      out.println("");
      out.println("");

      } finally {
      out.close();
      }
      }

      @Override
      protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      processRequest(request, response);
      }

      @Override
      protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      processRequest(request, response);
      }

      @Override
      public String getServletInfo() {
      return "Short description";
      }

      /*private ejb.NewsEntityFacadeLocal lookupNewsEntityFacade() {
      try {
      javax.naming.Context c = new javax.naming.InitialContext();
      return (ejb.NewsEntityFacadeLocal) c.lookup("NewsApp/NewsEntityFacade/local");
      }
      catch(javax.naming.NamingException ne) {
      java.util.logging.Logger.getLogger(getClass().
      getName()).log(java.util.logging.Level.SEVERE,"exception caught" ,ne);
      throw new RuntimeException(ne);
      }
      }*/
      // </editor-fold>
      }

      postMessage.java
      package web;

      import ejb.NewsEntity;
      import java.io.*;
      //import java.net.*;

      import java.util.Queue;
      import javax.jms.Destination;
      import javax.jms.JMSException;
      //import javax.jms.MessageProducer;
      import javax.jms.ObjectMessage;
      import javax.jms.QueueConnection;
      import javax.jms.QueueConnectionFactory;
      import javax.jms.QueueSession;
      import javax.naming.InitialContext;
      import javax.naming.NamingException;
      import javax.servlet.*;
      import javax.servlet.http.*;
      import javax.jms.MessageProducer;

      public class PostMessage extends HttpServlet {

      /**
      * Processes requests for both HTTP GET and POST methods.
      * @param request servlet request
      * @param response servlet response
      */
      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((Destination) queue);

      ObjectMessage message = session.createObjectMessage();
      // here we create a NewsEntity, that will be sent in JMS message
      NewsEntity e = new NewsEntity();
      e.setTitle(title);
      e.setBody(body);

      message.setObject(e);
      messageProducer.send(message);
      messageProducer.close();
      connection.close();
      response.sendRedirect("ListNews");

      } catch (JMSException ex) {
      ex.printStackTrace();
      } catch (NamingException ex) {
      ex.printStackTrace();
      }

      }
      PrintWriter out = response.getWriter();
      try {

      out.println("");
      out.println("");
      out.println("Servlet PostMessage");
      out.println("");
      out.println("");
      out.println("<h1>Servlet PostMessage at " + request.getContextPath () + "</h1>");
      out.println("");
      out.println("Title: ");
      out.println("Message: ");
      out.println("");
      out.println("");
      out.println("");
      out.println("");
      } finally {
      out.close();
      }
      }

      @Override
      protected void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      processRequest(request, response);
      }
      @Override
      protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      processRequest(request, response);
      }

      @Override
      public String getServletInfo() {
      return "Short description";
      }
      // </editor-fold>
      }
      NewsEntity.java
      package ejb;

      import java.io.Serializable;
      import javax.persistence.Entity;
      import javax.persistence.GeneratedValue;
      import javax.persistence.GenerationType;
      import javax.persistence.Id;


      @Entity
      public class NewsEntity implements Serializable {
      private static final long serialVersionUID = 1L;
      private Long id;
      private String title;
      private String body;

      public void setId(Long id) {
      this.id = id;
      }

      @Id
      @GeneratedValue(strategy = GenerationType.AUTO)
      public Long getId() {
      return id;
      }

      @Override
      public int hashCode() {
      int hash = 0;
      hash += (id != null ? id.hashCode() : 0);
      return hash;
      }

      @Override
      public boolean equals(Object object) {
      // TODO: Warning - this method won't work in the case the id fields are not set
      if (!(object instanceof NewsEntity)) {
      return false;
      }
      NewsEntity other = (NewsEntity) object;
      if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
      return false;
      }
      return true;
      }

      @Override
      public String toString() {
      return "ejb.NewsEntity[id=" + id + "]";
      }

      public String getTitle() {
      return title;
      }

      public void setTitle(String title) {
      this.title = title;
      }

      public String getBody() {
      return body;
      }

      public void setBody(String body) {
      this.body = body;
      }

      }
      NewMessageBean.java
      package ejb;

      import javax.annotation.Resource;
      import javax.ejb.ActivationConfigProperty;
      import javax.ejb.MessageDriven;
      import javax.ejb.MessageDrivenContext;
      import javax.jms.JMSException;
      import javax.jms.Message;
      import javax.jms.MessageListener;
      import javax.jms.ObjectMessage;
      import javax.persistence.EntityManager;
      import javax.persistence.PersistenceContext;

      @MessageDriven(mappedName = "jms/NewMessage", activationConfig = {
      @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
      @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
      @ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/mdb")
      })
      public class NewMessageBean implements MessageListener {
      @Resource
      private MessageDrivenContext mdc;
      @PersistenceContext
      private EntityManager em;

      public NewMessageBean() {
      }

      public void onMessage(Message message) {
      ObjectMessage msg = null;
      try {
      if (message instanceof ObjectMessage) {
      msg = (ObjectMessage) message;
      NewsEntity e = (NewsEntity) msg.getObject();
      save(e);
      }
      } catch (JMSException e) {
      e.printStackTrace();
      mdc.setRollbackOnly();
      } catch (Throwable te) {
      te.printStackTrace();
      }
      }

      public void save(Object object) {
      em.persist(object);
      }

      }
      NewsEntityFacade.java
      package ejb;

      import java.util.List;
      import javax.ejb.Stateless;
      import javax.persistence.EntityManager;
      import javax.persistence.PersistenceContext;

      /**
      *
      * @author Administrator
      */
      @Stateless
      public class NewsEntityFacade implements NewsEntityFacadeLocal {
      @PersistenceContext
      private EntityManager em;

      public void create(NewsEntity newsEntity) {
      em.persist(newsEntity);
      }

      public void edit(NewsEntity newsEntity) {
      em.merge(newsEntity);
      }

      public void remove(NewsEntity newsEntity) {
      em.remove(em.merge(newsEntity));
      }

      public NewsEntity find(Object id) {
      return em.find(ejb.NewsEntity.class, id);
      }

      public List findAll() {
      return em.createQuery("select object(o) from NewsEntity as o").getResultList();
      }

      }

      please Sir I need help.Where is my fault?How can solve it?