Как использовать функции Java 6 в среде Java 5 - PullRequest
1 голос
/ 27 декабря 2010

У меня странная проблема. Я разработал веб-приложение java в java 6, и когда я размещал его на сервере, оно показывает ошибку, начиная с его сервера java 5. Я использовал аннотации, hibernate, остальные API в своем коде, и теперь я хочу преобразовать свой код с помощью среды Java 5.

возможно ли это сделать? если да как? Или есть какой-то другой обходной путь для этой проблемы? Пожалуйста, дайте мне знать.

@ all: Это ошибка, которую я получаю:

alt text

Ответы [ 4 ]

1 голос
/ 27 декабря 2010

Я не уверен, каков ваш процесс сборки, но вам нужно скомпилировать код для конкретной цели, такой как Java 1.5.

  • Если вы используете javac из командной строки, посмотрите на ключ -target
  • Если вы используете ant, посмотрите на свойство target.

Вы столкнетесь с проблемами, если будете использовать специфичные для java 1.6 библиотеки.Вы узнаете об этом, когда попытаетесь запустить свой код / ​​веб-приложение.

Надеюсь, это поможет.

0 голосов
/ 27 декабря 2010

Вы пытаетесь запустить классы, скомпилированные для Java 6 на Java 5 (Tomcat 5.x использует Java 5).

  1. Вы можете выполнить обновление до Java 6.
  2. Вы можете скомпилировать классы для совместимости с Java 5, используя аргумент "-target" для javac, но эта опция не поможетпроблема происходит с сервлетом API.JEE6 требует Java 6.
0 голосов
/ 27 декабря 2010

Вам придется посмотреть на отдельные ошибки и выяснить, чего не хватает.

Аннотации JPA уже были частью Java EE 5, поэтому, если «hibernate» вызывает проблемы, это либо означает, что вы фактически не работаете в Java EE 5, либо используете аннотации, специфичные для hibernate. Аннотации REST действительно были добавлены в Java EE 6, но их можно относительно легко использовать в среде Java EE 5, добавив JAR с API, а также реализацию (например, Apache Jersey) в путь к классам приложения.

Кстати, здесь есть некоторая путаница в отношении Java SE и Java EE. Вы четко говорите о функциях Java EE, но между Java SE (о которой большинство людей думают, когда вы просто говорите «Java») существует большая разница с Java EE.

0 голосов
/ 27 декабря 2010

Судя по вашему сообщению, вы используете функции Java EE 6 в среде Java EE 5. Если ваше приложение. Сервер не поддерживает такие функции на уровне ядра, такие как отдельные функции Servlet 3.0 в среде Servlet 2.5, тогда вам не повезло.

Однако при использовании функций, являющихся библиотеками, таких как Hibernate, вы можете обойтись без использования его в среде Java EE 5.

Java 6 как язык остается тем же, что и Java 5, однако библиотеки изменились. Аналогично, использование классов и методов JRE из 6 не будет работать в 5.

Обновление : из вашего скриншота видно, что вы используете скомпилированные классы Java 6 в более старой версии Tomcat. Скомпилируйте их для Java 5.

...