Search code examples
javaservletsservlet-filtersembedded-jettyrunner

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


I'm desperate. I have read all topics about this problem here and it doesn't help. I had written a simple app and tried to run it using Jetty Runner. It works well on my local machine. But after that I tried to add servlet filter (because Jetty has issues with servlets on welcome-file-list). Now it prints to me:

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

My JDK and JAVA_HOME is OK. I'm using jdk1.8.0_25.

I read about:

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

or

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

I got this problem with it:

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

I'm using IDEA, Maven and .sh-file to run Jetty.

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

The strange thing is - I've tried to deploy this app with servlet filter on Heroku and it WORKS WELL.

Could you help me please with this problem?


Solution

  • Set -Dorg.apache.jasper.compiler.disablejsr199 to false and make sure you jave jdk on the path, meaning your path should look like "C:\Program Files\Java\jdk1.7.0_67\bin" NOT C:\Program Files\Java\jre\bin.