Jetty Runner, фильтр сервлетов и org.apache.jasper.JasperException: PWC6345

Я в отчаянии. Я прочитал все темы об этой проблеме здесь, и это не помогает. Я написал простое приложение и попытался запустить его с помощью Jetty Runner. Он хорошо работает на моей локальной машине. Но после этого я попытался добавить фильтр сервлетов (потому что у Jetty есть проблемы с сервлетами в списке приветственных файлов). Теперь он печатает мне:

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

Мой JDK и JAVA_HOME в порядке. Я использую jdk1.8.0_25.

Я читал о:

<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

У меня возникла такая проблема:

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, и оно ХОРОШО РАБОТАЕТ.

Не могли бы вы помочь мне, пожалуйста, с этой проблемой?


person vitalikrst    schedule 18.01.2015    source источник


Ответы (1)


Установите для -Dorg.apache.jasper.compiler.disablejsr199 значение false и убедитесь, что вы указали путь jdk, то есть ваш путь должен выглядеть как «C:\Program Files\Java\jdk1.7.0_67\bin», а НЕ C:\Program Файлы\Java\jre\bin.

person geekprogrammer    schedule 11.03.2015
comment
Он должен работать. Убедитесь, что вы используете эту команду для запуска приложения: java -jar -Dorg.apache.jasper.compiler.disablejsr199=false target/dependency/jetty-runner.jar target/*.war. А также, как я уже упоминал в ответе, проверьте свой путь к Java. Он должен указывать на jdkxxx\bin, а не на jre\bin. - person geekprogrammer; 29.03.2015