Я пытаюсь использовать TJWS Встраиваемый Servlet контейнер для запуска приложения Resteasy с помощью этой UserGuide http://docs.jboss.org/resteasy/docs/2.3.3.Final/userguide/html/RESTEasy_Embedded_Container.html#d0e2640Resteasy на TJWS с КДИ
работы приложения правильно в JBOSS7-AS. Я хочу использовать TJWS для отладки и модульного тестирования, но имею проблемы с инъекцией зависимостей.
создать класс UserResource ресурс, который с помощью CDI впрыснуть утилита класса UserManager:
@Path("users")
@SessionScoped
class UserResource {
@Inject
UserManager userManager; // simple interface and imlementation
public UserResource() {} // constructor with no parameters for bean
@Path("list")
@GET
public List<User> list() {
List<User> userList = userManager.getList(); // NullPointerException
return userList;
}
}
Start TJWS в основной:
public static void main(String[] args) throws IOException {
TJWSEmbeddedJaxrsServer tjws = new TJWSEmbeddedJaxrsServer();
tjws.setPort(9997);
tjws.start();
tjws.getDeployment().getRegistry().addPerRequestResource(User.class);
}
Когда я пытаюсь получить http://localhost/users/list
через браузер, я получаю NullPointerException в методе UserResource.list(), поскольку userManager не вводится и имеет значение null.
Есть ли способ ввести userManager?
Возможно, какая-либо интеграция с CDI не произойдет, если вы вручную запустите ее. Вы посмотрели на Аркиллиан для тестирования в контейнере? – LightGuard