- Статьи и примеры
- | Использование mdb
- | Про то, как можно использовать компоненты управляемые сообщениями (message driven beans) на практике.
- | Про то, как можно использовать компоненты управляемые сообщениями (message driven beans) на практике страница 2
Про то, как можно использовать компоненты управляемые сообщениями (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(); }