Тестирование приложения 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.