问题现象:

今天有现场反映,访问应用的个别页面报错,报错内容如下:

于是先查看其他现场,都是好的;根据报错信息,提示的意思是jsp解析不了。

结合上面2个情况,排除代码问题,应该是现场WAS环境问题。(现场WAS是6.1)

另外有个重要信息:大部分jsp页面是可以正常编译访问的,就是个别jsp编译有问题;

于是排查该jsp,发现里面用了jdk5.0的新特性,问题明了了,

问题原因:

1.缺省情况下,JSP 编译器用 1.3 的规范来编译 JSP 文件,如果您在 WAS V6.1 里用了带 JDK 1.5 的特性的 JSP,编译会失败。

2.Was6.1开始支持jdk5  其中jdkSourceLevel 是新引入的支持 JDK 5 的JSP 引擎参数。

该参数的默认值为 13(14-jdk1.4   15-jdk1.5)。该参数需要重新生成 Java 源代码。

3.在WAS6.1版本中使用JDK5.0,但是如果在JSP中嵌入的代码包含JDK5.0的新特性,编译的时候会出错。所以应用程序部署Was完成之后需要设置相应的JSP引擎配置参数,具体如下:

“jdkSourceLevel” 是在 WasV6.1 中引入的支持 JDK 5 新特性的 JSP 引擎参数。此参数的缺省值为 13。

以下是 “jdkSourceLevel”的可选 参数值:
       13(缺省值) - 此值将禁用 JDK 1.4 和 JDK 5.0 的所有新的语言功能部件。 
       14 - 此值将启用断言工具并将禁用 JDK 5.0 的所有新的语言功能部件。 
       15 - 此值将启用断言工具和 JDK 5.0 的所有新的语言功能部件。

解决办法:

到服务器上找到下面的两个文件: 
<WAS-HOME>/profiles/AppSrv01/config/cells/<cellname>/applications/<appname>/deployments/<appname.war>/WEB-INF/ibm-web-ext.xmi 
<WAS-HOME>/profiles/AppSrv01/installedApps/<nodename>/<appname>/<appname.war>/WEB-INF/ibm-web-ext.xmi 
在最后面的 </webappext:WebAppExtension> 前添加下面一行: 
<jspAttributes xmi:id="JSPAttribute_××××××" name="jdkSourceLevel" value="15"/>

例子:

<jspAttributes xmi:id="JSPAttribute_1280288503219" name="jdkSourceLevel" value="15"/>

保存后重新启动应用即可,也请同时删除 jsp 已经编译过的 class 文件: 
<WAS-HOME>/profiles/AppSrv01/temp/<nodename>/<appname>/<appname.war>/*.class

内容参考了:

http://wing123.iteye.com/blog/376857

http://www.cnblogs.com/zhangnanblog/archive/2012/2/3.html

WAS:修改jsp编译器用JDK5.0的更多相关文章

  1. Day07 jdk5.0新特性&Junit&反射

    day07总结 今日内容 MyEclipse安装与使用 JUnit使用 泛型 1.5新特性 自动装箱拆箱 增强for 静态导入 可变参数方法 枚举 反射 MyEclipse安装与使用(yes) 安装M ...

  2. 修改jsp文件tomcat发布失败(Could not delete May be locked by another process)

    突然项目修改jsp文件后,tomcat不能发布, Publishing failed with multiple errors   Could not delete D:/Tomcat 6.0/web ...

  3. 设置tomcat配置文件,在Myeclipse中修改jsp文件之后不用重启tomcat

    在Myeclipse中创建的Web程序在修改类或者jsp页面后需要重动ttomcat的,要重新加载一次的,即重新启动tomcat一次.重启时比较慢,及浪费资源及时间, 设置tomcat配置文件,在My ...

  4. 系统管理模块_部门管理_改进_抽取添加与修改JSP页面中的公共代码_在显示层抽取BaseAction_合并Service层与Dao层

    系统管理模块_部门管理_改进1:抽取添加与修改JSP页面中的公共代码 commons.jspf <%@ page language="java" import="j ...

  5. Java JDK5.0新特性

    JDK5.0新特性 虽然JDK已经到了1.8 但是1.5(5.0)的变化是最大的 1. 增强for循环 foreach语句 foreach简化了迭代器 作用: 对存储对象的容器进行迭代 (数组, co ...

  6. Java基础和JDK5.0新特性

    Java基础 JDK5.0新特性 PS: JDK:Java Development KitsJRE: Java Runtime EvironmentJRE = JVM + ClassLibary JV ...

  7. Jdk5.0中出现的新特性

    掌握jdk5.0中出现的新特性1.泛型(Generics)2.增强的"for"循环(Enhanced For loop)3.自动装箱/自动拆箱(Autoboxing/unboxin ...

  8. 如何在eclipse中修改jsp默认编码

    在使用eclipse编程的时候,很多默认的编码都是iso-8859-1我们经常使用的,在eclipse中怎么修改jsp页面的默认编码呢. 第一步:打开eclipse,找到windows-->pr ...

  9. was服务器下修改jsp无效果

    使用了jsp静态导入,修改了导入的jsp页面,但是目标页面没出现效果.先说下静态导入和动态导入的区别: include指令用于引入其它JSP页面,如果使用include指令引入了其它JSP页面,那么J ...

随机推荐

  1. HDU 4803 Poor Warehouse Keeper (贪心+避开精度)

    555555,能避开精度还是避开精度吧,,,,我们是弱菜.. Poor Warehouse Keeper Time Limit: 2000/1000 MS (Java/Others)    Memor ...

  2. msp430入门学习41

    msp430的其他九 msp430入门学习

  3. 更改App名称

    To change the installed application name, in Xcode: 1. Select your Target on the left side under Gro ...

  4. Laravel 之Composer

    Composer是php的依赖管理工具,不是包管理器. 安装方式: (1)Composer-Setup.exe Win操作系统.需FQ (2)composer.phar 通用安装方式.不需要FQ,wi ...

  5. Day 3 网络基础

    网络基础 一.什么是互联网协议及为何要有互联网协议 ? 互联网协议:指的就是一系列统一的标准,这些标准称之为互联网协议.互联网的本质就是一系列的协议,总称为‘互联网协议’(Internet Proto ...

  6. docker使用 命令

    Dockerfile FROM golang:alpine3. AS build-stage WORKDIR /go/src/mypro.exportReport COPY . . RUN go bu ...

  7. JFinal2.0极速开发视频教程发布【转】

    原文:http://blog.dreamlu.net/blog/79 目前JFinal越来越火爆,而且使用的公司越来越多.鉴于市面上JFinal的学习资源不多,我们开始基于JFinal2.0录制学习视 ...

  8. BZOJ——3296: [USACO2011 Open] Learning Languages

    http://www.lydsy.com/JudgeOnline/problem.php?id=3296 Time Limit: 5 Sec  Memory Limit: 128 MBSubmit:  ...

  9. UVA 11346 Probability

    题目描述 PDF 输入输出格式 输入格式: 输出格式: 输入输出样例 输入样例#1: 3 10 5 20 1 1 1 2 2 0 输出样例#1: 23.348371% 0.000000% 100.00 ...

  10. Annotation基本概念,作用以及举例说明。

    Annotation即注解,是Jav5新特征,Annotatio提供一些本来不属于程序的数据,用来将任何的信息或元数据(metadata)与程序元素(类.方法.成员变量等)进行关联.为程序的元素(类. ...