2010-04-21 8 views
5

나는 저에게 쓰여진 클라이언트가 호출 할 웹 서비스를 개발 중입니다. 웹 서비스에서 나는 시스템에서 응용 프로그램의로드를 편하게하는 응용 프로그램 전반의 객체를 사용해야합니다. this question과 같이 응용 프로그램 전체 개체를 구현했습니다.웹 서비스에서 FacesContext에 액세스

jsf 페이지에서 다음과 같이 아무런 문제없이 내 개체를 사용할 수 있습니다.

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

웹 서비스 요청에서 사용할 때 FacesContext.getCurrentInstance()는 null을 반환합니다. 웹 서비스에서 FacesContext를 사용할 방법이 있습니까?

+1

웹 서비스는 어떤 API를 기반으로합니까? 같은 컨테이너/컨텍스트에서 실행 중입니까? – BalusC

+0

jax-ws를 사용하고 있지만 컨테이너에 대해 생각하지 않았습니다. – scriptmonster

답변

5

웹 서비스가 Faces Servlet을 통해 제공되지 않기 때문에 null입니다. 웹 서비스는 JSF와 아무런 관련이 없기 때문에 이것이되어야합니다. 경우

당신이 JAX-WS 구현을 사용하여, 당신은 사용할 수 있습니다

@Resource 
WebServiceContext context; 

이는 WebServiceContext을 주입 할에 의해 수행 할 수 있습니다

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

그리고 갖는 ServletContext, 당신 응용 프로그램 범위 개체에 액세스 할 수 있습니다.

+0

나는 가능한 한 빨리 시험해 보겠다. 감사. – scriptmonster

+0

만약 내가 JAX RS를 사용하고 viewscoped bean에 접근하고 싶다면, Bozho를 달성하는 방법이 있습니까? –

관련 문제