Горячее развертывание weblogic работает для jsps, но не для web-inf/classes

Я развертываю приложение для ушей в weblogic 10.3 в развернутом формате с включенной быстрой заменой и в режиме разработки. Файл ear также содержит веб-приложение в разобранном виде. Изменения, внесенные в jsps в веб-приложении, перезагружаются. Но классы под web-inf при изменении не перезагружаются.

Конфигурация развертывания weblogic приведена ниже. Содержимое weblogic-application.xml в ear/META-INF

<wls:fast-swap>
    <wls:enabled>true</wls:enabled>
    <wls:refresh-interval>10</wls:refresh-interval>
    </wls:fast-swap>
<wls:classloader-structure>
        <wls:classloader-structure>
            <wls:module-ref>
                <wls:module-uri>web.war</wls:module-uri>
            </wls:module-ref>
        </wls:classloader-structure>  
</wls:classloader-structure>

Содержимое application.xml в ear/META-INF

    <display-name>web-ear</display-name>
  <module>
    <web>
      <web-uri>web.war</web-uri>
      <context-root>/web</context-root>
    </web>
  </module>
  <library-directory>lib</library-directory>

Содержимое weblogic.xml в файле war/WEB-INF

<wls:fast-swap>
        <wls:enabled>true</wls:enabled>
        <wls:refresh-interval>10</wls:refresh-interval>
</wls:fast-swap>

<wls:context-root>/web</wls:context-root>
<wls:session-descriptor>
        <wls:cookie-max-age-secs>-1</wls:cookie-max-age-secs>
        <wls:cookie-name>JSESSIONID_SQE_AAI</wls:cookie-name>
        <wls:cookie-path>/</wls:cookie-path>
        <wls:cookies-enabled>true</wls:cookies-enabled>
        <wls:invalidation-interval-secs>120</wls:invalidation-interval-secs>
        <wls:id-length>52</wls:id-length>
        <wls:timeout-secs>7200</wls:timeout-secs>
        <wls:url-rewriting-enabled>true</wls:url-rewriting-enabled>
        <wls:persistent-store-type>memory</wls:persistent-store-type>
        <wls:http-proxy-caching-of-cookies>false</wls:http-proxy-caching-of-cookies>
    </wls:session-descriptor>
    <wls:jsp-descriptor>
        <wls:page-check-seconds>6</wls:page-check-seconds>
    </wls:jsp-descriptor>
<wls:container-descriptor>
    <wls:servlet-reload-check-secs>6</wls:servlet-reload-check-secs>
    <wls:prefer-web-inf-classes>true</wls:prefer-web-inf-classes>
</wls:container-descriptor>

Верна ли конфигурация, описанная выше? Есть ли какие-либо детали конфигурации, которые я пропустил, чтобы включить здесь? Какие еще параметры или конфигурации следует проверить? Любая помощь будет очень признательна, спасибо.


person guru    schedule 28.11.2012    source источник


Ответы (1)


Даже если вы включите FastSwap в своем приложении, модули, объявленные в структуре classloader, не будут поддерживать FastSwap, потому что они загружаются не RedefiningClassLoader, а GenericClassLoader. Вы можете проверить это, распечатав загрузчик классов ваших классов в разделе WEB-INF/classes и проверьте, является ли он com.bea.wls.redef.RedefiningClassLoader или нет.

Я изо всех сил пытался заставить их работать вместе, вы можете увидеть более подробную информацию здесь https://forums.oracle.com/forums/thread.jspa?threadID=2476484&tstart=60, но, к сожалению, пока нет решения.

С Уважением.

person silenoz81    schedule 28.04.2013