2016-05-07 2 views
2

Я развертываю приложение Spring на сервере Tomcat 8. Приложение использует API Jena из этого maven repository. Когда я открываю приложение в браузере, она показывает следующее сообщение (то же приложение может быть открыто без каких-либо проблем, когда я не использую Jena API):java.lang.UnsupportedClassVersionError для запуска Jena API на Tomcat 8

HTTP Status 500 - Handler processing failed; nested exception is java.lang.UnsupportedClassVersionError: org/apache/jena/query/QueryExecutionFactory : Unsupported major.minor version 52.0 (unable to load class org.apache.jena.query.QueryExecutionFactory)

Я попытался решить эту проблему, изменив версию Java для Tomcat 8. Я открыл sudo nano /etc/init/tomcat.conf и изменил JAVA_HOME:

env JAVA_HOME=/usr/lib/jvm/java-8-oracle/jre 

Затем я перезагрузил Tomcat 8 сервер и перераспределены мое заявление, но та же проблема все еще существует. На самом деле я заметил, что по какой-то причине JRE 7 появляется в сообщении журнала при запуске сервера:

May 07, 2016 5:26:11 PM org.apache.catalina.startup.VersionLoggerListener log INFO: Java Home: /usr/lib/jvm/java-7-oracle/jre May 07, 2016 5:26:11 PM org.apache.catalina.startup.VersionLoggerListener log INFO: JVM Version: 1.7.0_80-b15 May 07, 2016 5:26:11 PM org.apache.catalina.startup.VersionLoggerListener log INFO: JVM Vendor: Oracle Corporation

Я не уверен, если это может быть возможной причиной того, почему проблема не решена. Любое решение высоко ценится.

P.S. Я знаю, что java.lang.UnsupportedClassVersionError происходит из-за более высокого JDK во время компиляции и более низкого JDK во время выполнения. Итак, правильно ли я понимаю, что Jena API был скомпилирован с более низким JDK?

+0

пожалуйста, подтвердите с помощью: 'Эхо $ JAVA_HOME' –

+0

@victor Соса:'/USR/Библиотека/JVM/Java-8-OpenJDK-amd64' – Klue

+0

Какой Linux? Проверьте initscript – Marged

ответ

3

На самом деле, насколько я могу видеть в банке, которую вы предоставляете, основная версия Jena является 52, что означает, что он был собран с Java 8, я считаю, что ваша проблема больше в связи с тем, что запустить Tomcat с Java 7

для получения более подробной информации о том, как узнать версию класса, пожалуйста, обратитесь к этому answer

чтобы указать Tomcat, которые JDK использовать, вам необходимо установить JAVA_HOME к й e путь JDK не JRE делая это экспорт JAVA_HOME=/usr/lib/jvm/java-8-oracle. Подробнее here

+0

Вы знаете, как запустить Tomcat с помощью java 8? Как я объяснил в своем ответе, я попытался изменить Java-версию Tomcat с '/ etc/init/tomcat.conf', однако это означает, что есть другая конфигурация, которую мне пришлось изменить. – Klue

+0

вам нужно установить JAVA_HOME на путь jdk, а не JRE, поэтому попробуйте это env JAVA_HOME =/usr/lib/jvm/java-8-oracle –

+0

Хорошо, спасибо. Я проверю его, перекомпилирую проект и дам вам знать, если он сработает. – Klue

Смежные вопросы