authTopic = (Topic) initialContext.lookup("topic/topicAuth");
authTopic = (Topic) initialContext.lookup(BeanConfig.PrefixTopicName+"topicAuth");
  public String getCommentForm(int itemId, int toId, String username, String password) throws RemoteException   {    int userId             = -1;    StringBuffer html      = new StringBuffer();    PreparedStatement stmt = null;    ResultSet rs           = null;    Connection conn        = null;    // Authenticate the user who want to comment      if ((username != null && !username.equals("")) || (password != null && !password.equals("")))      {        TopicConnection authConnection;        TopicSession authSession;        Topic authTopic;        try         {          // create a connection          authConnection = connectionFactory.createTopicConnection();          // lookup the destination          authTopic = (Topic) initialContext.lookup("topic/topicAuth");          // create a session          authSession  = authConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE); // no transaction and auto ack        }         catch (Exception e)        {          throw new EJBException("Cannot connect to message bean MDB_Auth : " +e+"<br>");        }        try         {          // create a requestor to receive the reply          TopicRequestor requestor = new TopicRequestor(authSession, authTopic);          // create a message          MapMessage m = authSession.createMapMessage();          // set parameters          m.setStringProperty("nickname", username);          m.setStringProperty("password", password);          m.setJMSCorrelationID("auth");          // send the message and receive the reply          authConnection.start(); // allows message to be delivered (default is connection stopped)          MapMessage authReply = (MapMessage)requestor.request(m);          authConnection.stop();          // read the reply          userId = authReply.getInt("userId");          // close connection and session          requestor.close(); // also close the session          authConnection.close();        }         catch (Exception e)        {          throw new EJBException("user authentication failed: " +e+"<br>");        }        if (userId == -1)        {           html.append(" You don't have an account on RUBiS!<br>You have to register first.<br>");           return html.toString();        }      }    // Try to find the user corresponding to the 'to' ID    String toName=null, itemName=null;    try    {      conn = dataSource.getConnection();      stmt = conn.prepareStatement("SELECT nickname FROM users WHERE id=?");      stmt.setInt(1, toId);      rs = stmt.executeQuery();      if (rs.first())        toName = rs.getString("nickname");      stmt.close();    }    catch (Exception e)    {      try      {        if (stmt != null) stmt.close();        if (conn != null) conn.close();      }      catch (Exception ignore)      {      }      throw new RemoteException("Failed to execute Query for user name: " +e);    }    try    {      stmt = conn.prepareStatement("SELECT name FROM items WHERE id=?");      stmt.setInt(1, itemId);      rs = stmt.executeQuery();      if (rs.first())        itemName = rs.getString("name");      if (stmt != null) stmt.close();      if (conn != null) conn.close();    }    catch (Exception e)    {      try      {        if (stmt != null) stmt.close();        if (conn != null) conn.close();      }      catch (Exception ignore)      {      }      throw new RemoteException("Failed to execute Query for item name: " +e);    }    try    {      html.append("<center><h2>Give feedback about your experience with "+toName+"</h2><br>\n");      html.append("<form action=\""+BeanConfig.context+"/servlet/edu.rice.rubis.beans.servlets.StoreComment\" method=POST>\n");      html.append("<input type=hidden name=to value="+toId+">\n");      html.append("<input type=hidden name=from value="+userId+">\n");      html.append("<input type=hidden name=itemId value="+itemId+">\n");      html.append("<center><table>\n");      html.append("<tr><td><b>From</b><td>"+username+"\n");      html.append("<tr><td><b>To</b><td>"+toName+"\n");      html.append("<tr><td><b>About item</b><td>"+itemName+"\n");    }    catch (Exception e)    {      throw new RemoteException("Cannot build comment form: " +e);    }     return html.toString();  }