首页 文章

weblogic热部署适用于jsps,但不适用于web-inf / classes

提问于
浏览
1

我正在以启用快速交换和开发模式的分解格式在weblogic 10.3中部署ear应用程序 . 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>

上面的配置是否正确?我有什么配置细节可以包括在这里吗?我应该检查哪些其他设置或配置?任何帮助将非常感谢谢谢 .

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但不幸的是,到目前为止还没有解决方案 .

    问候 .

相关问题