Как изменить сервер приложений localhost с Apache httpd на Tomcat, встроенный в ColdFusion 10?

Предыстория: пару лет назад моя группа изменила сервер, на котором coldfusion работает на Apache вместо IIS. Я изменил свою среду разработки, чтобы запустить CF на Apache httpd, и все было хорошо. Позже мы изменили переменные сеанса на j2ee, но я никогда не мог заставить j2ee работать на dev, поэтому я все еще использую переменные регулярного сеанса на dev. В последнее время я получаю сбой персистентности сеанса на тесте, но я не могу воспроизвести на dev. В поисках различий в настройках сервера CF между test и dev я обнаружил, что test работает на Tomcat, в то время как dev работает на Apache httpd.

Моя проблема реальная проблема заключается в том, как заставить vars сессии j2ee работать на dev. Мой вопрос сейчас заключается в том, как изменить мой сервер с Apache httpd на Tomcat, который встроен в CF 10? Есть ли способ сделать это без начала новой установки CF 10, поскольку это единственные инструкции, которые я могу найти?

Система: Windows 7

1 ответ

  1. IIS и Apache не являются (по крайней мере, для Coldfusion) серверами приложений. Это интерфейсные веб-серверы. Ваш » сервер приложений «в этой установке-это программное обеспечение, запускающее» приложение » Coldfusion через сервлеты, и это Tomcat.

    Хотя можно использовать встроенный сервер Tomcat CF в качестве интерфейсного веб-сервера, это не рекомендуется, и это почти наверняка не имеет ничего общего с вашей проблемой. Apache более чем способен сделать то, что вам нужно, и проблема с переменными сеанса J2EE будет связана либо с вашим JVM (вы используете более или менее ту же версию, что и ваш рабочий сервер?) или самому Tomcat.

    Подумайте о том, как работают сеансы J2EE. Запрос приходит и попадает на ваш сервер переднего плана (httpd), который, предположительно через mod_proxy или mod_jk, передает это соединение Tomcat. Пока это не произойдет, то, что ваша система даже работает JVM, не имеет значения — ни Apache, ни IIS не заботятся о Java. Я бы не пошел так далеко, чтобы сказать, что это невозможно для проблемы Apache, чтобы шутить с переменными сеанса, но это было бы довольно низко в моем списке подозреваемых.

    После того, как Tomcat (а затем CF) участвует, то ваша JVM делает всю работу, так что это то, где я бы посмотрел. Я бы также посмотрел на журналы CF и журналы Tomcat.

    Чтобы правильно ответить на ваш вопрос, если вы хотите удалить Apache из цикла, вы смотрите на сервер Tomcat.xml и web.xml в /cfusion / runtime/conf-вам понадобится, чтобы он работал на порту 80 (или же перенастроить Apache, чтобы просто передать все запросы Tomcat вместо только CFML, но это не делает то, о чем вы спросили, так как Apache все еще участвует). Вам также придется воспроизвести всю конфигурацию Apache в Tomcat, чего я никогда не делал и не рекомендовал бы, но это направление вам нужно будет исследовать.

    Гораздо лучше работать над решением вашей проблемы сессии. Убийство Апача — это просто сопутствующий ущерб.