첫째 : 여기
내가 함께 일하고 있어요 코드입니다 web.xml에서 init 매개 변수를 얻는 것이 일반적인 작업처럼 보입니다.이 작업의 맨 아래로 가려면 꽤 시간이 필요했습니다. 효과가있는 솔루션을 찾아보십시오. 저의 좌절감에서 다른 사람들을 구하기 위해 제 해결책을 게시하겠습니다. Jersey 구현을 사용 중입니다.
com.sun.jersey.spi.container.servlet.ServletContainer
아마도 다른 REST 구현은
ServletContext
을 사용하여 web.xml 초기화 매개 변수에 액세스 할 수 있지만 실제로 작동한다고 믿을 수있는 설명서가 있음에도 불구하고 그렇지 않습니다.
대신 다음을 사용해야합니다. @Context ResourceConfig context;
이것은 내 리소스 클래스의 필드 중 하나로 표시됩니다. 그럼 내 자원의 방법 중 하나에서, 나는 다음과 web.xml의 초기화 매개 변수에 액세스 할 수 있었다 :이 건물은 web.xml 파일을 참조
String uploadDirectory = (String) context.getProperty("dataStoragePath");
: 놀랍게도
<init-param>
<param-name>dataStoragePath</param-name>
<param-value>C:/ztestServer</param-value>
</init-param>
, @Context ServletContext context;
을 사용할 때 컨텍스트 개체가 실제로 ApplicationContextFacade를 참조했음을 발견했습니다. 나는 Facade를 통과 할 수있는 방법을 보지 못했고 내가 관심을 갖는 정보에 접근 할 수 없었다. 나는 매개 변수지도를 인쇄하고는 유일한 매개 변수는이 객체가 알고 있었다 저를 보여 주었다 :
java.util.Enumeration<String> params = context.getInitParameterNames();
while(params.hasMoreElements())
System.out.println(params.nextElement());
출력 :
com.sun.faces.forceLoadConfiguration
com.sun.faces.validateXml
출처
2012-06-14 05:53:05
FUD
유일한 문제는 나중에 그것이 작동하지 않았 음을 발견 한 것입니다. – Thorn
이것은 작동하지 않습니다. 이 경우의 컨텍스트는 Application Facade입니다. – gshauger