WAS V5无法编译带有中文汉字注释的JSP,应该如何配置

quantify 05-09-16

服务器是Windows XP Pro, 中文版
App Serv是WAS V5.1 中文版

试验了好多方法。

在setupCmdLine.bat 中设置-Dfile.encoding=GBK -Ddefault.client.encoding=GBK
UTF-8也设置了,但是就是不能编译成功,不知道应该如何设置才能正确发挥作用

JspReader: Exception parsing file
sun.io.MalformedInputException
at sun.io.ByteToCharUTF8.convert(ByteToCharUTF8.java(Compiled Code))
at sun.nio.cs.StreamDecoder$ConverterSD.convertInto(StreamDecoder.java:2
86)
at sun.nio.cs.StreamDecoder$ConverterSD.implRead(StreamDecoder.java:317)

at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:222)
at java.io.InputStreamReader.read(InputStreamReader.java:207)
at java.io.Reader.read(Reader.java:112)
at org.apache.jasper.compiler.JspReader.pushFile2(JspReader.java:261)
at org.apache.jasper.compiler.JspReader.<init>(JspReader.java:316)
at org.apache.jasper.compiler.Parser.<init>(Parser.java:137)
at org.apache.jasper.compiler.ParserController.parse(ParserController.ja
va:344)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:240)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:129)
at com.ibm.ws.webcontainer.jsp.compiler.ibmtools.JasperUtil.compileDir(J
asperUtil.java:653)
at com.ibm.ws.webcontainer.jsp.compiler.ibmtools.BatchC.compileDir(Batch
C.java:384)
at com.ibm.ws.webcontainer.jsp.compiler.ibmtools.BatchC.compileDir(Batch
C.java:356)
at com.ibm.ws.webcontainer.jsp.compiler.ibmtools.BatchC.compileDir(Batch
C.java:356)
at com.ibm.ws.webcontainer.jsp.compiler.ibmtools.BatchC.compileDir(Batch
C.java:356)
at com.ibm.ws.webcontainer.jsp.compiler.ibmtools.BatchC.compile(BatchC.j
ava:247)
at com.ibm.ws.webcontainer.jsp.compiler.ibmtools.BatchC.run(BatchC.java:
201)
at com.ibm.ws.webcontainer.jsp.compiler.ibmtools.JspBatchCompiler.start(
JspBatchCompiler.java:115)
at com.ibm.ws.webcontainer.jsp.compiler.ibmtools.JspBatchCompiler.main(J
spBatchCompiler.java:319)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:41)
at java.lang.reflect.Method.invoke(Method.java:386)
at com.ibm.ws.bootstrap.WSLauncher.main(WSLauncher.java:94)

JSPG0044E: 生成 /jsp/setup/setupIndex.jsp 的代码时发生错误:o
rg.apache.jasper.compiler.ParseException: 无法读文件:/jsp/setup/setupIndex.jsp sun.io.MalformedInputException。

Kyle_Yin
2005-09-16 14:20

检查你的编辑器(IDE). IDE本身的编码也要保持一致. 在WSAD里, 打开JSP文件, 然后下拉菜单:
文件->属性->信息->文本文件编码->其他->UTF-8, 确定.

default.client.encoding是给服务器输入流用的, 它指的是客户端(IE, FIREFOX)的编码. 你的异常栈很清楚, 是JSP文件PARSE时, 无法把文件转化为UTF-8, 这说明1.你文件中有中文字符,2. 文件编码没有用UTF-8.

quantify
2005-09-16 15:21

是的JSP文件中有中文的注释

我并不使用IDE,如何才能把所有的文本文件编码改成UTF-8

我本来是想使用file.encoding设置,让WAS按照GBK读取JSP文件进行PARSE。。。

刚才查了一下,发现WAS V5.1.1有这BUG,无法避免

Kyle_Yin
2005-09-16 23:12

如果你用WINDOWS记事本, 那么->另寸为->编码->UTF-8, 道理是一样的.

不要用GBK寸文件. 举个例子, 如果你的JSP中要同时有中文, 日文和阿拉伯文怎么办? :-)