Про то, как можно использовать компоненты управляемые сообщениями (Message Driven Beans) на практике Страница 2

Практика

Теперь подробнее о некоторых моментах.

1. После установки сервера приложений Orion, исправим файл orion/config/server.xml таким образом:

 #Раскомментируем строчку
 <jms-config path="./jms.xml" />
 
 #Добавим наше приложение
 <application name="my_application" path = "c:\orion\applications\my_application.ear" auto-start="true" />
 
 #Комментируем. Оно нам не надо.
 <!-- <web-site path="./default-web-site.xml" /> -->
 
 #Добавим описание нашего сервера
 <web-site path="./my_application-web-site.xml" />

2. Правим файл orion/config/jms.xml:

 #Добавим  Queue:
 <!-- My_application Worker Queue -->
 <queue name="My applicationr Worker Queue" location="jms/MyApplicationWorkerQueue">
 <description>My Application Worker Queue</description>
 </queue>

3. Правим файл orion/config/rmi.xml:

 #Изменим порт на 23793
 <rmi-server  port="23793>

4. Создадим папку orion/start. Внутри ее создадим файл orion.bat. Это будет самый главный запускающий скрипт.

 @echo off
 set PATH=C:\jdk5
 c:
 cd c:\orion
 echo Starting the Orion...
 "%PATH%/bin/java" -Xms120M -Xmx1024M 
 -classpath d:/o -jar orion.jar

5. Создадим файл orion/config/my_application-web-site.xml с описанием нашего веб сайта. Специально зададим отличный от стандартного порт, чтобы не порушить другие процессы.

 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE web-site PUBLIC "Orion Web-site" "http://www.orionserver.com/dtds/web-site.dtd">
 <web-site host="[ALL]" port="8092" display-name="My Application Web Site">
  <default-web-app application="MyApplication" name="MyApplication-web" />
  <access-log path="../log/MyApplication.log" />
 </web-site>  

На этом настройки сервера приложеинй заканчиваются. Перейдем собственно к приложению.

6. Класс сервлета. Метод doGet. Ничего особенного.

 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

  // Set the MIME type of the response, "text/html"
  response.setContentType("text/html");
  ServletOutputStream out = response.getOutputStream();

  // Begin assembling the HTML content
  out.println("<html><head>");
  out.println("<link rel=stylesheet href='/mw.css' type='text/css'> ");
  out.println("<title>ApplicationServlet</title>");
  out.println("</head><body><table width=\"100%\">");
  out.println("<tbody><tr><td align=\"center\");
  out.println("style='text-align:center'>");
  out.println("<br /><h2>ApplicationServlet</h2>");
  out.println("<form method=\"post\" action =\"/servlet/ApplicationServlet\" >");
  out.println("<table align=\"center\" width=\"400px\"><tbody>");
  out.println("<tr><td align=\"center\"><br /><br />");
  out.println("<input type=\"submit\" value=\"Go go\" /></td></tr");
  out.println("></tbody></table></form>");
  out.println("</td></tr></tbody></table>");
  out.println("</body></html>");
 }

7. Класс сервлета. Метод doPost. Реализуем модель передачи сообщений точка-точка.

 // prepare JMS staff
 QueueConnection jmsConnection;
 Queue jmsWorkerQueue= null;
 QueueSession jmsWorkerSession   = null;
 Context context;
 
 try {
  context   = new InitialContext();
  QueueConnectionFactory factory 	= (QueueConnectionFactory) context.lookup("jms/QueueConnectionFactory");
  jmsConnection	= factory.createQueueConnection();
  jmsConnection.start();
  jmsWorkerQueue	= (Queue) context.lookup(System.getProperty("jms_worker_queue"));
  jmsWorkerSession = jmsConnection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
 } catch (NamingException e) {
  e.printStackTrace();
 } catch (JMSException e) {
  e.printStackTrace();
 }

Страница: