Невозможно импортировать пакеты javax.ejb. *

У меня возникли проблемы при построении сеанса EJB bean.

Невозможно найти следующий packages:

import javax.ejb.LocalBean;
import javax.ejb.Stateful;
import javax.ejb.TransactionManagement; 
import javax.ejb.TransactionManagementType;

Некоторые решения подразумевали добавление библиотек j2ee.jar и javaee.jar в путь сборки java.

Я использую jdk-7u75-windows-x64 и java_ee_sdk-7-windows-ml и не могу найти ни одну из этих библиотек в данном месте ($ JAVA_HOME\lib). Я использую eclipse (кеплер) на машине Windows 7 x64

Ответы

Ответ 1

javaee.jar не содержит ни eclipse, ни java (jdk). Файл должен быть загружен вручную и добавлен в путь сборки проекта. Java ee 7 api можно найти здесь. В качестве альтернативы можно использовать зависимость maven:

<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>7.0</version>
</dependency>

Ответ 2

API EJB находится в библиотеках JavaEE, которые, как вы правильно указали, распространяются вместе с библиотекой j2ee.jar. Если вы используете Eclipse, его путь к классам может указывать на стандартные библиотеки Java, а не на корпоративные библиотеки. Вы можете попробовать две вещи:

  • Скомпилируйте и запустите свой код из командной строки. Установите% JAVA_HOME%, чтобы указать каталог установки java_ee_sdk-7-windows-ml и добавить% JAVA_HOME%/bin в% PATH%.
  • Найдите библиотеку Enterprise и добавьте ее в свой CLASSPATH в Eclipse. CLASSPATH устанавливается путем перехода к свойствам проекта и выбора опции "Добавить внешнюю библиотеку/файл jar". Добавьте все файлы jar, найденные в каталоге установки EE, в путь сборки.

Ответ 3

Я тоже сталкиваюсь с этой ошибкой. Я следую руководствуясь примером того, как написать сервис SOAP на Java, так как я n00b. Мой оператор import javax.ejb.Stateless вызывает ошибку, говорящую, что это не может быть решено.

Так как этот ОП был написан в 2013 году, я был немного скептически настроен... думая, что мне может понадобиться немного помассировать это решение.

Однако я добавил javaee.jar в качестве внешнего jar в библиотеки, и это было исправлено !! Спасибо!