2013-08-06 2 views
0

У меня есть проект, и я пытаюсь внедрить мою службу, но я продолжаю получать исключение из null-указателя, вводя UserService. И я не могу понять, чего не хватает.Почему я не могу заставить инъекцию работать?

Я добавил проект в свой github, https://github.com/JohnnyBekkestad/demo, заметьте, что для того, чтобы сосредоточиться на проблеме, я удалил много кода, чтобы очистить его.

Если кто-нибудь может видеть, что я пропал без вести, я бы с благодарностью оценил его.

С наилучшими пожеланиями Джонни

+1

Невозможно получить ответ, если вы не публикуете исходный код и не указываете класс/строку, где возникает ошибка. – TheEwook

+0

Да, как минимум, отправляйте трассировку стека. –

+0

Исключение NullPointer в Line27 в UserController.java –

ответ

2

Ваш файл WAR отсутствует в beans.xml файл здесь: https://github.com/JohnnyBekkestad/demo/tree/master/web/rest/src/main/webapp/WEB-INF

Если предположить, что вы пытаетесь внедрить услугу здесь и это где NPE приходит от:

https://github.com/JohnnyBekkestad/demo/blob/master/web/rest/src/main/java/se/johnny/demo/web/rest/UserController.java

+0

Это правильно, я пытаюсь вставить в UserController.java, но это не сработало, когда я добавил beans.xml –

+0

Последующие действия, так как вы делаете мультимодуль проекта вам понадобится META-INF/beans.xml в дополнение к beans.xml в WEB-INF WAR. – LightGuard

+0

@BeauJohnnyBekkestad, пожалуйста, напишите свой след стека. LightGuard, что определенно не требуется, хотя может зависеть от вашего сервера приложений. –

0

Отметьте это tutorial при использовании Tomcat и не забудьте добавить beans.xml, ch ange web.xml и включить/исключить необязательные зависимости (weld). Кроме того, нет таких аннотаций пара

@Path 
@ManagedBean 

Помните: JAX-RS (или в случае Джерси) говорит вам, когда он находит любую реализацию, что означает @Path достаточно:

INFO: Root resource classes found: 
    class com.bekkestad.demo.web.rest.UserController 

И как стартер: Tomcat не является контейнером Java EE. Если вы используете GlassFish 4, сначала получите поддержку Java EE (@EJB> @Stateless), а затем добавьте возможности CDI - но тогда вам не нужно добавлять какие-либо зависимости, поскольку сварка уже доступна (= no context.xml или изменения в web.xml необходимо, просто beans.xml в WEB-INF, а также во всех других проектах каталогов META-INF).

Смежные вопросы