Доступ к FacesContext из веб-службы - PullRequest
5 голосов
/ 21 апреля 2010

Я разрабатываю веб-сервис, который будет вызываться клиентами, написанными мной.В веб-сервисе мне нужно использовать объекты всего приложения, что облегчает загрузку приложения в системе.Я реализовал свои объекты всего приложения, как показано в этом вопросе .

Я могу без проблем использовать свой объект на странице jsf следующим образом.

MyObject mo = (MyObject) FacesContext.getCurrentInstance().getExternalContext().getApplicationMap().get("MyObjectsName");

Но когда дело доходит до использования его в запросе веб-службы FacesContext.getCurrentInstance () возвращает null.Есть ли способ использовать FacesContext в веб-сервисе.

1 Ответ

6 голосов
/ 21 апреля 2010

Это ноль, потому что веб-сервисы не проходят через сервлет Faces. И так и должно быть, потому что веб-сервисы не имеют ничего общего с JSF.

Если вы используете реализацию jax-ws, вы можете использовать:

@Resource
WebServiceContext context;

Это введет WebServiceContext, с помощью которого вы можете:

ServletContext servletContext = (ServletContext) 
     context.getMessageContext().get(MessageContext.SERVLET_CONTEXT);

И, имея ServletContext, вы можете получить доступ к объектам области приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...