问题现象:

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

于是先查看其他现场,都是好的;根据报错信息,提示的意思是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. SGU 107 数学题

    题意:求平方后末尾9个数是987654321的数个数. 之前做此题,竟然愚蠢到用计算器 在哪里算,还加笔算,SB啊!不知道先打印一下吗! #include<iostream> #inclu ...

  2. (46)C#注册表及读写

    启动注册表:regedit 结构: 注册表一共有7个配置单元用regedit只能看到5个 HKEY_CLASSES_ROOT 包含系统上文件类型的细节(.txt,.doc)等.以及使用那些应用程序可以 ...

  3. T1013 求先序排列 codevs

    http://codevs.cn/problem/1013/  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Descr ...

  4. T1229 数字游戏 codevs

    http://codevs.cn/problem/1229/ 题目描述 Description Lele 最近上课的时候都很无聊,所以他发明了一个数字游戏来打发时间.  这个游戏是这样的,首先,他拿出 ...

  5. Idea Failed to read artifact descriptor for xx:jar:unknown

    网上的解决方案: 根据网上说明添加了maven命令clean compile install -Dmaven.test.skip=true,与我遇到的问题不同 有的方法猜测可以通过,但是没时间测试了 ...

  6. GeoServer发布Heatmap

    转自原文 GeoServer发布Heatmap 百度等热力图是使用开源的heatmap.js做的,但是这种解决方案的缺陷是: 1 数据量大的话,从前端通过后台查询比较费时,比如arcserver默认设 ...

  7. 梯度下降和EM算法,kmeans的em推导

    I. 牛顿迭代法给定一个复杂的非线性函数f(x),希望求它的最小值,我们一般可以这样做,假定它足够光滑,那么它的最小值也就是它的极小值点,满足f′(x0)=0,然后可以转化为求方程f′(x)=0的根了 ...

  8. [转]java类 对象 和构造方法

    github地址:https://github.com/lily1010/java_learn/tree/master/dog java中对象和类 java中万物皆对象,比如说动物,里面有猫,狗,鱼等 ...

  9. ElasticSearch生产模式开发模式的区分

    ElasticSearch生产模式开发模式的区分 network.host: 0.0.0.0 如果network.host不是localhost就是生产模式, 开发模式中的warning就是生产模式中 ...

  10. Eclipse打包Android项目时用到proguard.cfg后,出现的Warning:can&#39;t find referenced class问题的解决方式

    Warning: can't find superclass or interface Warning: can't find referenced class 这两个问题的解决方法: 1.要把你项目 ...