Jetty Runner、Servlet 过滤器和 org.apache.jasper.JasperException:PWC6345

Jetty Runner, Servlet Filter and org.apache.jasper.JasperException: PWC6345

我很绝望。我在这里阅读了有关此问题的所有主题,但没有帮助。 我写了一个简单的应用程序并尝试 运行 使用 Jetty Runner。它在我的本地机器上运行良好。但之后我尝试添加 servlet 过滤器(因为 Jetty 在欢迎文件列表上有 servlet 问题)。现在它打印给我:

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

我的 JDK 和 JAVA_HOME OK。我正在使用 jdk1.8.0_25.

我读到:

<Call class="java.lang.System"  name="setProperty">
        <Arg>org.apache.jasper.compiler.disablejsr199</Arg>
        <Arg>true</Arg>
</Call>

-Dorg.apache.jasper.compiler.disablejsr199=true

我遇到了这个问题:

org.apache.jasper.JasperException: PWC6349: Cannot find a java compiler for compilation.  If running with JDK 5 or before, Ant or JDT compiler can be used, if the corresponding jars and bridge classes (org.apache.jasper.compiler.AntJavaCompiler or org.apache.jasper.compiler.JDTJavaCompiler) are included

我正在使用 IDEA、Maven 和 .sh 文件到 运行 Jetty。

java -jar target/dependency/jetty-runner.jar target/*.war

奇怪的是 - 我尝试在 Heroku 上使用 servlet 过滤器部署这个应用程序,它 运行良好

你能帮我解决这个问题吗?

将 -Dorg.apache.jasper.compiler.disable jsr199 设置为 false 并确保你的路径上有 jdk,这意味着你的路径应该看起来像 "C:\Program Files\Java\jdk1.7.0_67\bin" NOT C:\Program Files\Java\jre\bin.