2016-12-15 9 views
0

При вводе простого управляемого CDI компонента в сервлет (начиная с сгенерированного образца кода SimpleServlet) при доступе к сервлету Bluemix Liberty регистрирует эту ошибку:Ошибка в Bluemix Liberty при вводе простого управляемого CDI компонента в сервлет

«SimpleServlet не может быть введен в качестве класса wasdev.sample.servlet.SimpleServlet не в архиве боба.»

Это так, даже если beans.xml файл с открытием «все» это used.The цель выглядит следующим образом

The target with bean.xml

+0

Как выглядит ваш код? –

+0

открытый класс SimpleServlet расширяет HttpServlet { \t частный статический конечный длинный serialVersionUID = 1L; \t @Inject \t частный TestService svc; –

ответ

2

Причина ошибки:

Погрешность обусловлена не иметь beans.xml в построенной войне приложений, т.е. JavaHelloWorldApp.war

В настоящее время по соображениям производительности файл beans.xml всегда необходим для использования C DI на Bluemix.

Решение:

Скопировал bean.xml внутри /src/main/webapp/WEB-INF/beans.xml затем построили код.

Это гарантирует, что bean.xml будет упакован в файл войны, то есть JavaHelloWorldApp.war, и ошибка будет устранена.

+0

Итак, проблема в том, что beans.xml не был в вашей войне? В вопросе вы заявили, что beans.xml был там ... –

+0

Да, bean.xml должен быть там в военном файле. Я предоставляю снимок ниже для справки. –

0

Чтобы убедиться, что bean.xml правильно установлен в Bluemix, выберите приложение java на консоли Bluemix, щелкните и откройте панель инструментов приложения java. Выберите Runtime, выберите Вкладка, найдите и убедитесь, что bean.xml правильно развернут внутри WEB-INF, как показано в снимок ниже.

Bean.xml deployed in Liberty Bluemix