Я не понимаю, почему, когда я создаю клиент JAX-RS внутри EJB, не могу получить реализацию JAX-RS. Я считаю, что предполагается, что сервер приложений, такой как Glassfish 3.1, должен обеспечить реализацию JAX-RS, например, Джерси, и я не должен добавлять его как зависимость, но он не может его найти.Тестирование Отдыхающий клиент от EJB3
Ошибка java.lang.ClassNotFoundException: org.glassfish.jersey.client.JerseyClientBuilder
, и я думаю, что не нужно добавлять Джерси в путь к классу, потому что Glassfish должен предоставить его.
код, который генерирует ошибку в
Client client = ClientBuilder.newClient();
Этот код находится внутри метода EJB, и мой тестовый пример:
EJBContainer container = EJBContainer.createEJBContainer();
MyService service = (MyService) container.getContext().lookup("java:global/classes/MyService");
service.create(null);
Зависимости в файле pom.xml выглядит следующим образом:
<dependencies>
<dependency>
<groupId>org.glassfish.extras</groupId>
<artifactId>glassfish-embedded-all</artifactId>
<version>3.1.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version>1.7.7</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
Упаковка является файлом WAR, я думаю, что это не должно быть проблемой.
Согласно http://www.oracle.com/technetwork/java/javaee/tech/javaee6technologies-1955512.html, jax-rs принадлежит JavaEE 6. – rvillablanca
Но вы пытаетесь использовать API Java EE 7 в своем pom.xml? –
Да, я использую jee 7 api. Я не знаю, как я могу выполнить тест, используя контейнер jee 7 ejb, однако мой код должен работать в контейнере jee 6/7. – rvillablanca