Jetty 8 无法运行JSP,出现PWC6345问题的原因

网上关于 PWC6345 错误的帖子都是说 Glassfish 的,具体错误信息是

org.apache.jasper.JasperException: PWC6345: There is an error in invoking javac.  A full JDK (not just JRE) is required

但我今天试用 Jetty 8 同样出现这个问题,问题描述请看这里

摸索了半天终于找到原因了。

我的JDK安装在D盘,JAVA_HOME 也指向安装目录,系统的PATH也设置了D:\JDK\bin

但是安装JDK的时候,安装程序会往C盘的系统目录拷贝Java的可执行文件,其中包括 java.exe,而使用 java -jar start.jar 来启动 Jetty 时则优先使用的是系统目录下的 java.exe ,这样 Jetty 的 JSP 解析器就无法正确获取 JDK 的安装目录而导致此问题发生。

解决的办法,退出 Jetty ,在系统目录下搜索 java.exe ,删掉它并重启 Jetty 即可。

我直接写了个bat来启动的,内容如下:

set JAVA_HOME=C:\jdk6

C:\jdk6\bin\java -jar start.jar

 

我看了下jetty里面的jar包,发现里面其实是有ecj编译器的,把start.ini里面的“-Dorg.apache.jasper.compiler.disablejsr199=true”注释去掉就行了,

bat文件改为:

set JRE_HOME=C:\jdk6

C:\jdk6\jre\bin\java -jar start.jar

未经允许不得转载:小贱贱吧 | 分享身边的福利吧 » Jetty 8 无法运行JSP,出现PWC6345问题的原因

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址