Тестирование приложения spring openshift локально
у меня есть приложение, работающее на Openshift. Он работает нормально, но тестирование сложно, потому что я должен нажать каждую мелочь на openshift и ждать, пока все здание и перезапуск увидят изменения.
поэтому я пытаюсь найти способ проверить приложение локально. Другой парень спросил то же самое здесь: как протестировать приложение openshift на локальном хосте, но мне интересно, существует ли более простое решение.
я использовал quickstart проект здесь http://github.com/openshift/spring-eap6-quickstart.git чтобы начать его. Таким образом, в основном это приложение Spring с использованием Hibernate.
что я имею в виду, чтобы иметь два набора конфигурационных файлов (persistence.xml
etc.) в проекте один для локального сервера Tomcat и один для JBoss eap и
изменить web.xml
в соответствии с сервером, на который я хочу развернуть. Это выполнимо? Выглядит так просто, я боюсь любых неожиданных проблем перед изменением
проект.
3 ответов
вот как я закончил. Я переименовал оригинал С web-openshift.xml
. Когда проекты строятся в OpenShift, maven профиль. Вы можете найти его в своем <profiles>
раздел в pom.XML. Поэтому я добавил строку к моему pom.xml
:
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
....
<webXml>src/main/webapp/WEB-INF/web-openshift.xml</webXml> <!--add this-->
это делает maven-war-plugin
использовать web-openshift.xml
файл в качестве дескриптора веб-развертывания при создании войны. Затем я добавил web.xml
файл, который будет использоваться для моей локальной сборки. В этих файлах настройте сервлеты с помощью:
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/jboss-as-spring-mvc-context.xml</param-value>
Итак, изменив <param-value>
свои web.xml
файлы, я смог настроить Spring и Hibernate по-разному.
затем я добавил банки помечены как <provided>
на pom.xml
до \lib
каталог моей установки Tomcat. Теперь я могу развернуть и запустить приложение в OpenShift и Tomcat.
Если у вас быстрое соединение, вы можете запустить ваше приложение на локальном сервере, и пусть упорство.xml указывает на БД openshift. Для удаленного доступа к БД необходимо использовать порт forwarding(https://www.openshift.com/blogs/getting-started-with-port-forwarding-on-openshift ). Вам нужно будет настроить клиент rhc (https://www.openshift.com/developers/rhc-client-tools-install) и запустите клиент пересылки порта rhc для доступа к базе данных. Затем вы можете указать просто запустите проект eclipse на своем сервере tomcat, и он будет ( с настойчивостью.xml я предполагаю, что вы используете db) подключиться к базе данных. Любые изменения кода будут рассматриваться как любой другой проект tomcat. Нет необходимости иметь отдельную сеть.xml для большинства случаев (если у вас нет определенных конфигураций openshift).
вы даже можете использовать такие инструменты, как Toad для подключения к БД, если хотите.
в приложении, которое я запускаю как локально, так и на Openshift, я использовал постоянную папку app-root/data для хранения любой конкретной конфигурации OpenShift.
в моем web.xml, я включаю свойства следующим образом:
<context:property-placeholder location="file:${user.home}/app-root/data/configuration.properties"/>
Если вы управляете чувствительными свойствами конфигурации, такими как имена пользователей и пароли, переменные env Openshift могут пройти долгий путь. Например, в pom можно поместить следующие свойства.xml, под openshift профиль:
<properties>
<db.username>${env.OPENSHIFT_POSTGRESQL_DB_USERNAME}</db.username>
<db.password>${env.OPENSHIFT_POSTGRESQL_DB_PASSWORD}</db.password>
<db.connectionURL>postgresql://${env.OPENSHIFT_POSTGRESQL_DB_HOST}:5432/${env.PGDATABASE}</db.connectionURL>
</properties>
для получения свойств подключения к базе данных из переменных среды Openshift. Затем вы можете использовать фильтрацию ресурсов maven, чтобы поместить эти свойства в любые файлы в определенных каталогах, таких как src/main/resources
мои собственные свойства подключения к локальной БД управляются в профиле в my ~/.м2/настройки.XML-файл.
этот подход позволяет мне:
- держите все чувствительные свойства из моего открытого кода хранилище
- очень просто переключаться между openshift и локальным развертыванием, включив / отключив профили сборки maven.