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

05-09-16 quantify
服务器是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中要同时有中文, 日文和阿拉伯文怎么办? :-)

猜你喜欢