Назад | Перейти на главную страницу

Glassfish JSF / EAR Apache 2.2 proxy_ajp_mod Отсутствует ссылочный контент (изображения / ссылки / и т. Д.)

Полное раскрытие информации: поскольку это, похоже, скорее проблема конфигурации, я удалил это из стека (где он не получил никакого ответа) и разместил здесь.

Проблема в том, как изменить requestContextPath, обслуживаемый Glassfish за mod_proxy_ajp. Сайт / приложение работает нормально при подключении напрямую к порту 8080 Glassfish, который в конечном итоге не Что я хочу сделать.

Поэтому мне нужна помощь в настройке моих серверов и развертывании jsf. Я вижу проблему, но не знаю, как ее решить. Это связано с requestContextPath.

Однако со ссылками на страницы я не могу установить относительный путь.

На Apache

ProxyPass / ajp://littlewalterserver:8009/myapp-web/

ProxyPassReverse / ajp://littlewalterserver:8009/myapp_Project-web

На Glassfish

asadmin create-network-listener --listenerport 8009 --protocol http-listener-1 --jkenabled true jk-connector

Я попытался войти в Glassfish и установить веб-приложение в качестве веб-приложения по умолчанию. Я изменил / в glassfish-web.xml (и проверил, совпадает ли он с файлом EAR).

Как я могу заставить Glassfish не включать /myapp/ контекст в URL? Это должно быть легко, если ты знаешь как, но я не знаю как, может ли кто-нибудь здесь помочь? Спасибо.

Я нашел кое-что, что работает прямо сейчас.

Предварительно я думаю, что когда я установил веб-приложение по умолчанию на вкладке безопасности, я также установил <context-root>/</context-root> в файле glassfish-web.xml одновременно. Конечно, это не сработало.

Что сработало, так это то, что я установил веб-приложение EAR в качестве веб-приложения по умолчанию на экране безопасности консоли Glassfish и удалил <context-root>/</context-root> из glassfish-web.xml.

Затем я изменил строки proxypass в httpd.conf на:

ProxyPass / ajp://myapp-web/

ProxyPassReverse / ajp://myapp_Project-web

Это работает, но это как бы побеждает одну из целей использования прокси, которая состоит в том, чтобы позволить веб-приложению продолжать работать в своем контексте, но дает пользователю возможность легко ссылаться. У вас может быть только одно веб-приложение по умолчанию в контексте, что сильно ограничивает вас, если вы хотите добавить больше сайтов в стиле управления контентом с помощью Glassfish. Без лога переписывания то есть. Жаль, что они не могли придумать что-то, чтобы это «просто работало».

Я все еще могу использовать apache для обслуживания статического контента и в качестве входной двери для SSL-соединений, но не очень доволен этим подходом. Если кто-то знает способ получше, я все еще готов к нему.