Доступ к FacesContext из веб-службы

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

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

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

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

1 ответ

Решение

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

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

@Resource
WebServiceContext context;

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

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

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

Другие вопросы по тегам