Tomcat Класс перезарядки и Hybris

В Hybris развитие окружающей среды, мы ищем для уменьшения Hybris сервер (Tomcat) перезапускается после каждой модификации классов,

Помимо известных инструментов доступны (JRebel, HotswapAgent,...), мы пытаемся использовать tomcat Механизм перезагрузки класса / веб-приложения по умолчанию на сервере: reloadable="true"

Это работает как шарм при внесении некоторых изменений в классах под extention webroot папка,

Но это не тот случай, когда изменения вносятся в соответствии с [Extention]/classes папка.

Итак, вопрос:

Можно ли сделать так, чтобы сервер hybris (tomcat) знал об изменениях в папке [Extention]/classes и перезагрузил соответствующее веб-приложение? знаю это hybris имеет собственный механизм загрузки классов!

Environment :
Hybris 5.4
Tomcat 7.0
JDK 1.8

С наилучшими пожеланиями


-------- РЕДАКТИРОВАТЬ 1-------

Инструмент сборки:

Мы используем только ant Команды для сборки / очистки... проекта, The IDEs (eclipse, intelliJ...) используются только для редактирования исходного кода.

Иерархия папок:

 [HybrisFolder]
          |__bin
              |__platform
              |__custom
                  |__[ExtentionFolder]
                       |__classes
                       |__web
                           |__webroot
                               |__WEB-INF
                                   |__classes

Пробовал решения (это не сработало)

Добавить [ExtentionFolder]/classes папка как смотрел ресурс в tomcat:

  • Первый вариант:

Добавьте его как WatchedResource в контексте веб-приложения:

<Context reloadable="true" path="[ExtentionName]" docBase="[ExtentionFolder]/web/webroot">
  <Manager pathname="" />
  <Loader platformHome="[PlatformFolder]" className="de.hybris.tomcat.HybrisWebappLoader" deployName="default" />
  <WatchedResource>[ExtentionFolder]/classes</WatchedResource>
</Context>

==> Это не работает

  • Второй вариант:

Добавьте его как ExtraResource в контексте веб-приложения:

<Context reloadable="true" path="[ExtentionName]" docBase="[ExtentionFolder]/web/webroot">
  <Manager pathname="" />
  <Loader platformHome="[PlatformFolder]" className="de.hybris.tomcat.HybrisWebappLoader" deployName="default" />
  <Resources className="org.apache.naming.resources.VirtualDirContext" extraResourcePaths="/WEB-INF/classes=[ExtentionFolder]/classes"/>
</Context>

==> Я получаю странную ошибку, как будто это была двойная загрузка одного и того же класса (первая загрузка была сделана с помощью PlatformInPlaceClassLoader Hybris, а вторая загрузка - tomcat)

Caused by: org.springframework.beans.factory.BeanNotOfRequiredTypeException: 
Bean named 'myBean' must be of type [x.y.z.DefaultMyBean], but was actually of type [x.y.z.DefaultMyBean]

0 ответов

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