Почему Eclipse Kepler SR1 выдает ошибку: JAX-RS 2.0 требует Java 1.7 или новее

У меня есть проект maven, который дает следующие две ошибки

Невозможно установить JAX-RS (веб-службы REST) ​​2.0: не соблюдено одно или несколько ограничений.
Для JAX-RS (веб-службы REST) ​​2.0 требуется Java 1.7 или новее.

У меня установлен JDK 1.6 (я не могу это изменить)

Фасеты проекта НЕ отмечены галочкой JAX-RS.

Фасеты проекта имеют набор java 1.6.

Фасеты проекта имеют набор Dynamic Web Project 2.4.

У меня есть следующие плагины

Сонар 3.2.0 MercurialEclipse 2.10 Эклемма 2.2.1

pom.xml - это просто...

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.fake.company</groupId>
    <artifactId>customerservice-war</artifactId>
    <version>2.0.0-SNAPSHOT</version>
</project>

web.xml это

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>Customer Service</display-name>
</web-app>

Очистка или «Обновить проект Maven» не имеют значения.

Примечание. Это находится в eclipse-jee-kepler-SR1-win32-x86_64. Примечание. Версия eclipse-jee-kepler-win32-x86_64 не выдает ошибку.

Примечание. Новое рабочее пространство не изменяет ошибку.

Примечание. Я использую JDK.1.6.0_43.

Единственная ошибка, которую я вижу в связи с этим в файле «.log», это...

!ENTRY org.eclipse.osgi 2 1 2013-10-16 15:07:58.816 !MESSAGE Неиспользуемое сообщение NLS: JaxrsProjectConfigurator_The_project_does_not_contain_required_facets в: org.eclipse.m2e.wtp.jaxrs.internal.messages

Добавление аспекта не позволит мне применить его, так как он говорит, что мне нужна Java 1.7.

JSR339 (JSR339) гласит: "API будет широко использовать аннотации и потребует J2SE 6.0 или более поздней версии"

Есть идеи?


person jeff porter    schedule 16.10.2013    source источник
comment
Вы создали новое рабочее пространство — вы очистили старый Eclipse .settings и .project?   -  person artbristol    schedule 16.10.2013
comment
да, я создал новое рабочее пространство и снова проверил проект. Он содержит только «.project», без папки настроек. если я удалю .project, я не смогу импортировать проект (и в нем нет упоминания о jax)   -  person jeff porter    schedule 16.10.2013


Ответы (4)


Удалите файл .project и изгоните его из системы управления версиями. Вместо использования Import -> Existing Project используйте Import -> Maven project и позвольте m2e настроить ваш проект Eclipse.

person artbristol    schedule 16.10.2013
comment
+1 за намек на то, что не так, хотя Import->Maven Project у меня не сработал. Мне пришлось mvn eclipse:eclipse, а затем Import-> General-> Existing Project. Тогда вуаля! - person Jeffrey Martinez; 10.01.2014

Это ошибка, исправленная в Luna, если не в SR2. http://bugs.eclipse.org/416704

person nitind    schedule 16.10.2013
comment
спасибо, если бы я мог дважды "отметить" ответы, то вы были бы отмечены! - person jeff porter; 16.10.2013

Если вы хотите просто избавиться от этих ошибок, вы можете просто щелкнуть правой кнопкой мыши ошибки в «Просмотре маркера» и нажать «Удалить».

person Bipul    schedule 17.02.2014

Я знаю, что вы не можете изменить свой 1.6 JDK, но следующее решение может помочь другим людям:

В моем случае у меня есть JDK 1.6 и 1.7. Я пробовал несколько предложенных решений без каких-либо успехов.

Следовательно, в моем pom.xml я изменил jdk 1.6 на jdk 1.7:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.0</version>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
    </configuration>
</plugin>

Использование jdk 1.7 сработало для меня, хотя в моих аспектах установлено значение 1.6 (потому что я намеревался использовать jdk 1.6).

person Thales Diniz    schedule 25.04.2014