1

我正在 weblogic 10.3 中以展开格式部署一个耳朵应用程序,启用了快速交换并处于开发模式。该 ear 文件包含一个也是分解格式的 Web 应用程序。对 Web 应用程序中的 jsps 所做的更改正在重新加载。但是 web-inf 下的类在更改时不会重新加载。

下面给出了 weblogic 部署配置。ear/META-INF 中的 weblogic-application.xml 内容

<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>

ear/META-INF 中的 application.xml 内容

    <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>

war/WEB-INF 中的 weblogic.xml 内容

<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>

上面的配置对吗?是否有任何我错过的配置细节包括在这里?我应该检查哪些其他设置或配置?非常感谢任何帮助。

4

1 回答 1

0

即使您在应用程序中启用了 FastSwap,在类加载器结构中声明的模块也不会支持 FastSwap,因为它们不是由 RedefiningClassLoader 加载的,而是由 GenericClassLoader 加载的。您可以通过在 WEB-INF/classes 下打印类的类加载器来测试它,并检查它是否是 com.bea.wls.redef.RedefiningClassLoader。

我努力让它们一起工作,您可以在此处查看更多详细信息https://forums.oracle.com/forums/thread.jspa?threadID=2476484&tstart=60但不幸的是,到目前为止还没有解决方案。

问候。

于 2013-04-28T10:54:09.713 回答