Приложение 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.