Приложение Grails Tomcat или VMware vFabric

Я довольно новичок в Grails. У меня есть уже существующее приложение, которое я хочу запустить. Приложение собирается и работает правильно, но я не могу определить сервер, который он использует - будь то экземпляр VMware по умолчанию или Tomcat

Я включил плагин Tomcat в свой BuildConfig.groovy как показано ниже

build ':tomcat:7.0.52.1'

Я предполагаю, что приложение на самом деле работает на сервере Tomcat, но я не знаю, как это подтвердить. На вкладке серверов моего GGTS я вижу только экземпляр VMware, но не экземпляр Tomcat. Это нормально?

Я также пытался проверить журналы во время развертывания приложения, изменив уровень журнала на verbose в BuildConfig.groovy, но это тоже не дает мне достаточно информации, чтобы получить ответ, где мой поиск закончился.

Для тех, кто заинтересован, моя главная цель - настроить SSL-сертификат на tomcat, если это еще не сделано. Любая помощь по этому поводу очень ценится.

2 ответа

Решение

Можно развернуть WAR-файл Grails на сервере, управляемом GGTS, но я никогда этого не делал. Я уверен, что это легко сделать, но мне никогда не нужно было. Это имеет гораздо больше смысла в среде, которая не поставляется со встроенным (но завершенным) экземпляром Tomcat, а также с возможностью замены этого с помощью изменения конфигурации в 1 строку для полного встроенного экземпляра Jetty: http://grails.org/plugin/jetty

Когда вы запускаете приложение из GGTS с помощью "Run As | Grails Command (run-app)", вы делаете то же самое, что и при запуске grails run-app из командной строки. Все GGTS делает для запуска приложения или тестов, и даже generate- а также create- scripts вызывает тот же сценарий, что и вы, но в отдельной виртуальной машине, поэтому он изолирован, и он захватывает и отображает stdout и stderr в IDE. Таким образом, очень маловероятно, что вы используете tc Server (VMware - это компания (или была, теперь это Pivotal), vFabric - это платформа, а tc Server - это улучшенная версия Tomcat, для которой продаются лицензии и поддержка). Если вы хотите быть полностью уверенным, перейдите на панель инструментов Spring и удалите tc Server, если вы не планируете развертывание на нем в будущем и хотите проверить это локально.

Еще один быстрый тест (при условии, что у вас нет пользовательской страницы 404) - это запросить URL для правильного хоста, порта и контекста, но для несуществующей страницы или контроллера в вашем приложении. На странице 404 должно быть написано Tomcat, а на странице tc Server - "tc Server", что-то похожее на это: введите описание изображения здесь

Так что если ваше приложение называется "foo", запросите

http://localhost:8080/foo/whereAreWeRunningFrom?

или что-то подобное.

Кроме того, если GGTS развернут на tc Server (или даже Tomcat, но это собственный управляемый Tomcat, а не встроенный Tomcat внутри Grails, который он не может настроить или получить к нему доступ), он сделает это, создав файл WAR и развернув его, и он будет использовать производственную среду. Так что перезагрузка будет отключена. Если вы можете изменить контроллер, службу, taglib, файл i18n, GSP и т. Д., И изменение вступит в силу, вы используете Tomcat, настроенный Grails. При этом используется стиль развертывания "разнесенная WAR", в котором Tomcat сообщает, что каталог вашего проекта является разархивированным файлом WAR, и настраивает каталоги css и js, каталоги изображений, WEB-INF и т. Д., Чтобы они указывали на папки вашего проекта. нет реального распакованного WAR-файла.

Вы можете работать с SSL локально, используя -https см. http://grails.org/doc/latest/ref/Command%20Line/run-app.html - Grails создаст для вас самоподписанный сертификат в первый раз, и вы можете продолжить его использовать или использовать подход, подобный описанному здесь, чтобы заменить его: http://grails.1312388.n4.nabble.com/Specifying-the-SSL-certificate-in-Grails-2-x-td4629128.html

Команда grails run-app создает встроенный контейнер сервлета с использованием Tomcat по умолчанию. Таким образом, вы используете Tomcat из плагина Grails, а не сервер vFabric, поставляемый с GGTS.

Если вы используете grails run-app -https для вас будет создан самозаверяющий сертификат.

Конечно, при развертывании файла WAR на производственном сервере вам необходимо будет добавить сертификат SSL.

Другие вопросы по тегам