Установка Coldfusion и Railo на одном J2EE сервере на примере Glassfish

Наверное, единственным полноценным описанием работы Coldfusion под Glassfish является этот пост Пола Кукеля, и, возможно, в этом посте не будет много нового по сравнению с оригиналом.

Итак, по шагам:

1. Самый отвественный шаг - собрать волю в кулак и скачать Glassfish сервер с официального сайта;

 

2. Начнем установку. Интерфейс не блещет красотой, но инсталлятор работает без ошибок;

Start Glassfish installation

 

3. Логинимся в панель управления, по-умолчанию адрес http://localhost:4848/

Logging to Glassfish

 

4. Скачиваем сервер Railo как war-файл с официального сайта.

 

5. В разделе "Applications" как мы видим пока пусто. Здесь будут жить Coldfusion и Railo. Нажимаем кнопку Deploy.

Glassfish applications

 

 

6. Выбираем war-файл, вводим имя контекста и имя приложения в соответствующие поля. Сохраняем форму.

Adding Railo WAR file

 

7. После недолгой процедуры разворачивания, Railo готов к работе. Пока что не торопимся тестировать, ведь нужно развернуть Coldfusion.

 

8. Скачиваем Coldfusion 9 с официального сайта - для разработчиков напомню, Coldfusion совершенно бесплатна;

 

9. Начинаем установку Coldfusion, когда придет время, выбираем вариант установки "WAR-файл"

Install Coldfusion 9 WAR file

 

10. Дадим инсталлятору время чуток повозиться над созданием WAR-архива

Coldfusion WAR file for J2EE server (Glassfish 3)

 

11. По окончанию установки, Coldfusion создаст в целевой папке (по-умолчанию это C:\ColdFusion9) архив WAR, который мы "скормим" "стекло-рыбе".

WAR file ready

 

12. В уже известном разделе Applications в консоли Glassfish снова нажимаем Deploy и указываем на этот раз папку, куда Coldfusion уже положила WAR-файл и собственно выбираем WAR-файл

Deploy Coldfusion 9 Glassfish

 

13. Сохраняем, даем время Glassfish-у развернуть WAR-архив и установить Coldfusion. По окончанию этого процесса в разделе Applications будет показано два установленных приложения. Приложения будут работать под одним сервером и доступны каждый по своему контексту: http://localhost:8080/railo и http://localhost:8080/cfusion

14. Пробуем запустить Coldfusion Administrator. Сначала он завершит настройку сервера, а после перейдет на страницу логина

Coldfusion 9 Administrator

 

15. Проверим наконец и Railo, и убедимся что с ним все в порядке

Railo under Glassfish

 

16. Уже сейчас можно полноценно работать. Но чтобы стало еще лучше, можно создать два виртуальных хоста для Apache и разделить доступ к серверам через эти виртуалхосты.

Подправим httpd.conf, чтобы включить нужные нам модули, расскоментарив эти строки:

LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so

# Virtual hosts
Include conf/extra/httpd-vhosts.conf

 

17. В файле httpd-vhosts.conf заставим эти модули поработать. Этими строками мы скажем Апачу "реврайтить" запросы CFM и CFC страниц и запросы Flash-remoting на соответствующий сервер приложений. Остальные файлы предоставим Апачу как обычно. После исправления конфигов Апача, не забываем перегрузить его. Будем считать, что вы ласково называете компьютер c3p0.

<VirtualHost *:80> 
 
   ServerName c3p0-cf

   DocumentRoot "C:/glassfishv3/glassfish/domains/domain1/applications/cfusion"
   DirectoryIndex index.html index.htm index.cfm index.cfml index.php 

   <Directory "C:/glassfishv3/glassfish/domains/domain1/applications/cfusion">
  
       Options +Indexes +FollowSymLinks
       AllowOverride All
       Order allow,deny
       Allow from all

    </Directory>  

    RewriteEngine On
    RewriteRule ^/(.*\.cf[cm])$ http://127.0.0.1:8080/cfusion/$1 [P,L]
    RewriteRule ^/flex2gateway/(.*)$ http://127.0.0.1:8080/cfusion/flex2gateway/$1 [P,L]
 
</VirtualHost>


<VirtualHost *:80>

    ServerName c3p0-railo

    DocumentRoot "C:/glassfishv3/glassfish/domains/domain1/applications/railo"   
    DirectoryIndex index.html index.htm index.cfm index.cfml index.php

    <Directory "C:/glassfishv3/glassfish/domains/domain1/applications/railo">
  
       Options +Indexes +FollowSymLinks
       AllowOverride All
       Order allow,deny
       Allow from all

    </Directory>   

    RewriteEngine On
    RewriteRule ^/(.*\.cf[cm])$ http://127.0.0.1:8080/railo/$1 [P,L]
    RewriteRule ^/flex2gateway/(.*)$ http://127.0.0.1:8080/railo/flex2gateway/$1 [P,L]
    RewriteRule ^/flashservices/gateway(.*)$ http://127.0.0.1:8080/railo/flashservices/gateway$1 [P,L]
    RewriteRule ^/messagebroker/(.*)$ http://127.0.0.1:8080/railo/messagebroker/$1 [P,L]
    RewriteRule ^/openamf/gateway/(.*)$ http://127.0.0.1:8080/railo/openamf/gateway/$1 [P,L]

</VirtualHost>

 

18. Подправим файл hosts (в Windows он расположен в C:\Windows\System32\drivers\etc\hosts):

127.0.0.1       localhost c3p0 c3p0-cf c3p0-railo

 

18. Flash Remoting в Coldfusion сразу готов к работе - достаточно запустить http://c3p0-cf/flex2gateway/ и увидеть пустую страницу - так и должно быть, если Flash Remoting настроен правильно. Однако, для Railo это не совсем так. Хоть BlazeDS интегрирован в Railo 3.1 точно также, как и в Coldfusion 9, нужно подправить конфигурацию Railo прежде чем начать работать с Flash remoting.

Исправляем файл web.xml в папке WEB-INF (в установке по-умолчанию в Windows - C:\glassfishv3\glassfish\domains\domain1\applications\railo\WEB-INF).

    <servlet>   
        <servlet-name>MessageBrokerServlet</servlet-name>
        <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
        <init-param>
            <param-name>services.configuration.file</param-name>
            <param-value>/WEB-INF/flex/services-config.xml</param-value>
       </init-param>
        <init-param>
            <param-name>messageBrokerId</param-name>
            <param-value>MessageBroker</param-value>
       </init-param>
       <load-on-startup>3</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>MessageBrokerServlet</servlet-name>
        <url-pattern>/flex2gateway/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>MessageBrokerServlet</servlet-name>
        <url-pattern>/flashservices/gateway/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>MessageBrokerServlet</servlet-name>
        <url-pattern>/messagebroker/*</url-pattern>
    </servlet-mapping>

 

19. После исправления конфигов Railo, его нужно перегрузить. Это делается с помощью администраторской панели Glassfish все с той-же страницы Applications. После перезагрузки, запуск http://c3p0-railo/flex2gateway/ должен выдать не ошибку, а пустую страницу.

20. Теперь можно полноценно пользоваться обоими серверами одновременно. Файлы CFM и CFC нужно класть в папки под корнем приложений внутри папок Glassfish - например C:\glassfishv3\glassfish\domains\domain1\applications\railo\ и C:\glassfishv3\glassfish\domains\domain1\applications\cfusion. Это не самое удобное решение, и пока я не нашел ответа как изменить положение этих папок.

21. Have fun !

Автор: Родион Быков | Опубліковано: 01.03.2010 о 01:21 | Категорії: Railo - ColdFusion 9 - Glassfish -

Відгуки