почему причал 6.1.x не работает с java 1.4.2?

Документация, которую я могу найти, предполагает, что причал 6.1.x все еще должен работать с java 1.4.2.

Тем не менее, если я загружаю двоичный файл причала и «java -jar start.jar», я получаю варианты:

«Исключение в потоке «основной» java.lang.UnsupportedClassVersionError: (org/mortbay/xml/XmlConfiguration) неправильная основная версия по смещению = 6»

Я пробовал это с причалом 6.1.26, загруженным с dist.codehouse.org/jetty. Я пробовал с пристанью 'hightide' версии 6.1H.24 и hightide-6.1H.8.

Моя джава:

$ java -version версия java "1.4.2" Java(TM) 2 Runtime Environment, Standard Edition (сборка 2.3) IBM J9 VM (сборка 2.3, J2RE 1.4.2 IBM J9 2.3 Linux amd64-64 j9vmxa64142ifx-20100113 (с поддержкой JIT) J9VM — 20100112_51454_LHdSMr JIT — 20090210_1447ifx1_r8 GC — 200902_24)

Я знаю, что это древняя Java, но у меня есть древний код для запуска. Везде ГОВОРИТ, что причал 6.1 должен работать на java 1.4. Я даже нахожу старые сообщения в блогах, в которых говорится, что они запускали jetty 1.6 с java 1.4.

Ну что, как поживаешь? Что я делаю не так?


person jrochkind    schedule 20.07.2011    source источник


Ответы (2)


Как я вижу на http://docs.codehaus.org/display/JETTY/what+JVMs+are+supported последняя версия Jetty, работающая на JDK 1.4, — 6.1.5. Итак, вам нужно получить старую версию причала.

Другой способ - собрать причал из исходников самостоятельно. Учебное пособие, как это сделать, находится на Jetty wiki.

person uthark    schedule 20.07.2011
comment
Это почти наверняка случай, когда jrochkind необходимо скомпилировать из исходного кода, учитывая ошибку UnsupportedClassVersionError. - person wowest; 20.07.2011
comment
Да, понятно, что причал, который он использует, скомпилирован против более нового jdk. Но, согласно информации на вики причала, он может взять более старую версию причала, скажем 6.1.5, и попробовать с ней. Или собрать причал самому, как я уже сказал. - person uthark; 20.07.2011
comment
Я думаю, может быть, эта страница была написана, когда 6.1.5 была последней версией 6.1. Потому что главная страница загрузки: docs.codehaus.org/display/JETTY/Downloading+Jetty говорит Jetty-6.1 1.4-1.6 Но, может быть, это неправильно? Я думаю, может быть, мой опыт свидетельствует о том, что это неправильно, но я чувствую подозрение, почему главная страница загрузки причала говорит это, и никто еще не заметил, что это неправильно? Я просто немного сбит с толку отсутствием хорошей документации/конфликтующей документации здесь. - person jrochkind; 21.07.2011
comment
и на самом деле да, даже на той странице, которую вы цитируете, говорится, что jetty-6 нацелен на Java 1.4 или выше. Затем говорит Некоторые (более старые) конкретные отчеты об успехе, прежде чем сказать 1.4.2 с причалом 6.1.5. Так что это просто говорит, что кто-то (давно) специально проверил 6.1.5 с 1.4.2 --- но все еще говорит, что причал 6.1 в целом должен работать с java 1.4 в целом. Но я предполагаю, что это может быть неправильно - Jetty известен плохой документацией или чем-то еще? - person jrochkind; 21.07.2011
comment
Упомянутое вами исключение (Исключение в потоке main java.lang.UnsupportedClassVersionError: (org/mortbay/xml/XmlConfiguration) неверная основная версия при смещении = 6) определенно говорит о том, что причал скомпилирован для более поздней версии JDK. Таким образом, это может быть ошибка в документации. - person uthark; 22.07.2011

Хорошо, я понял это.

Jetty 6.1.26 в частности и все jetty 6.1.x в целом ДЕЙСТВИТЕЛЬНО работают на Java 1.4, а файлы .jars, распространяемые на официальном сайте, скомпилированы для работы с Java 1.4.

Так почему же это не сработало для меня?

Некоторые из примеров веб-приложений, распространяемых с помощью Jetty, НЕ работают в версии 1.4, они не скомпилированы для версии 1.4. Я не знаю, если это несчастный случай с упаковкой или что.

Но если я удалю все примеры приложений, удалив все в ./webapps и ./contexts, то выпуск бинарного дистрибутива Jetty 6.1.26 нормально запустится под 1.4 и отлично работает, когда я устанавливаю свои собственные веб-приложения.

person jrochkind    schedule 27.07.2011