Я все еще не могу заставить мои модульные тесты работать. Когда я выполняю тест, я получаю атрибут ClassFormatException
: Absent Code в методе, который не является собственным или абстрактным в файле класса javax/ejb/EJBAccessException
. Это я написал в моем pom.xml
:
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javaee</artifactId>
<version>6.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
Но это не работает. Если я открою файл repo/org/glassfish/javaee/6.0/javaee-6.0.jar
в текстовом редакторе, он содержит только некоторый текст HTML. Ты хоть представляешь, что не так? Где я могу найти правильный javaee-6.0.jar
? Если я открою тот в glassfish3/glassfish/lib
, он содержит только немного pom.xml
, ничего больше.
У меня есть слой данных, состоящий из сущностей, доступных через сессионные компоненты. Этот слой упакован и развернут как JAR. Ошибка связана с уровнем представления. Там нет EJB. Но я использую Spring MVC. Он загружает контроллеры в начале. И несколько контроллеров являются EJB-клиентами. Это не должно иметь значения, но один из них содержит строку import javax.ejb.EJBAccessException
. Когда загрузчик Spring (скажем так) загружает этот класс, процесс загрузки завершается с вышеупомянутым исключением. Поэтому для продолжения теста мне нужна реализация Java EE.
Но этот вопрос на самом деле более общий. Это не первый раз, с чем я столкнулся с этой ошибкой: JAR зависимости недействителен, и когда я заглянул внутрь, я увидел обычный HTML-код.
Кстати: я удивлен, что до сих пор не нашел правильного ответа на этот фундаментальный вопрос в Интернете.