在生产环境部署weblogic11g后,发布后,如果对jsp文件进行改动,则必须要需要重新启动weblogic,改变的内容才能加载。
推测和weblgoic的生产模式有关。
经查,可以在weblogic.xml中对 JSP文件检查周期设置
刚开始查到的解决方法如下:
1 2 3 4 5 6 7 | <weblogic-web-app> <jsp-descriptor> <jsp-param> <param-name>pageCheckSeconds</param-name> <param-value>-1</param-value> </jsp-param> </jsp-descriptor> |
启动后,报错,提示pageCheckSeconds是无效,再查:
1 2 3 4 | <jsp-param> <param-name>page-check-seconds</param-name> <param-value>5</param-value> </jsp-param> |
启动后,错误依旧:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <Error> <J2EE> <BEA-160197> <Unable to load descriptor /app/webapp/oaweb2/WEB-INF/weblogic.xml of module oaweb2. The error is weblogic.descriptor.DescriptorException: VALIDATION PROBLEMS WERE FOUND problem: cvc-complex-type.2.4a: Expected elements ‘keepgenerated@http://xmlns.oracle.com/weblogic/weblogic-web-app package-prefix@http://xmlns.oracle.com/weblogic/weblogic-web-app super-class@http://xmlns.oracle.com/weblogic/weblogic-web-app page-check-seconds@http://xmlns.oracle.com/weblogic/weblogic-web-app precompile@http://xmlns.oracle.com/weblogic/weblogic-web-app precompile-continue@http://xmlns.oracle.com/weblogic/weblogic-web-app verbose@http://xmlns.oracle.com/weblogic/weblogic-web-app working-dir@http://xmlns.oracle.com/weblogic/weblogic-web-app print-nulls@http://xmlns.oracle.com/weblogic/weblogic-web-app backward-compatible@http://xmlns.oracle.com/weblogic/weblogic-web-app encoding@http://xmlns.oracle.com/weblogic/weblogic-web-app exact-mapping@http://xmlns.oracle.com/weblogic/weblogic-web-app default-file-name@http://xmlns.oracle.com/weblogic/weblogic-web-app rtexprvalue-jsp-param-name@http://xmlns.oracle.com/weblogic/weblogic-web-app debug@http://xmlns.oracle.com/weblogic/weblogic-web-app compress-html-template@http://xmlns.oracle.com/weblogic/weblogic-web-app optimize-java-expression@http://xmlns.oracle.com/weblogic/weblogic-web-app resource-provider-class@http://xmlns.oracle.com/weblogic/weblogic-web-app strict-stale-check@http://xmlns.oracle.com/weblogic/weblogic-web-app’ instead of’jsp-param@http://xmlns.oracle.com/weblogic/weblogic-web-app’here in element jsp-descriptor@http://xmlns.oracle.com/weblogic/weblogic-web-app:<null> </weblogic-web-app> |
根据错误信息,到http://xmlns.oracle.com/weblogic/weblogic-web-app这个地址查看他的dtd文档,根据自己的版本查看“1.3 : Released with WLS v10.3.6.0”,在文件中有如下信息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <xs:complexType name=”jsp-descriptorType”> <xs:sequence> <!– Keep generated .java source files –> <xs:element name=”keepgenerated” type=”wls:true-falseType” minOccurs=”0″ /> <!– package prefix for the generated jsp file –> <xs:element name=”package-prefix” type=”xs:string” minOccurs=”0″ /> <!– super-class to be used for the generated jsp class –> <xs:element name=”super-class” type=”xs:string” minOccurs=”0″ /> <!– Interval at which the jsp servlet class is checked for staleness against the jsp resource default: 1 –> <xs:element name=”page-check-seconds” type=”javaee:xsdIntegerType” minOccurs=”0″ /> <!– compiles all modified jsps at webapp application deployment time or server startup time. default: false –> <xs:element name=”precompile” type=”wls:true-falseType” minOccurs=”0″ /> |
最后,改成如下:
1 2 3 4 5 | <jsp-descriptor> <!– 10s reload jsp –> <page-check-seconds>10</page-check-seconds> </jsp-descriptor> |
重启weblogic,并测试jsp改动,一切OK!!!