2008-09-26 11 views
4

: 아파치 제로니모 인스턴스에JNDI의 java.lang.String Apache Geronimo의 기본 컨텍스트 - 어떻게? 다음 내가 할 서블릿에서

Context context = new InitialContext(); 
    value = (String) context.lookup("java:comp/env/propertyName"); 

은 (CE 2.1은 WAS) 내가 어떻게 키 propertyName 형식에 값을 연결합니까?

Websphere AS 6에서는 관리 콘솔의 "이름 공간 바인딩"페이지에서 JNDI 조회를 위해 이러한 등록 정보를 구성 할 수 있지만 웹에서 공동체 에디션으로이를 수행 할 수있는 방법은 없습니다.

답변

1

하나 이상의 <env-entry> 태그를 사용하여 web.xml 파일 (WEB-INF 디렉토리)에 특성을 추가 할 수 있습니다. 다음과 같은 예를 들어 뭔가 :

<env-entry> 
    <description>My string property</descriptor> 
    <env-entry-name>propertyName</env-entry-name> 
    <env-entry-type>java.lang.String</env-entry-type> 
    <env-entry-value>Your string goes here</env-entry-value> 
</env-entry> 

각 ENV-항목 태그는 다음 java:comp/env 컨텍스트에서 액세스 할 수있는 새로운 환경 변수를 선언합니다.

일단 필요한 env-entry을 추가하면이 값에 액세스하기 위해 이미 게시 한 것과 유사한 코드를 사용할 수 있습니다. Geronimo를 설치하지 않았으므로이 작업을 수행하기 위해 수행해야 할 추가 구성이 있는지 여부를 모르겠습니다.

0

속성을 파일에 넣고 파일 이름과 위치를 web.xml의 URL 유형의 resource-ref로 만들 수 있습니다. 자원의 값은 geronimo-web.xml에서 설정됩니다.

다음 항목해야합니다 귀하의 web.xml :

은 제로니모 - web.xml에
<resource-ref> 
    <res-ref-name>configFileName</res-ref-name> 
    <res-type>java.net.URL</res-type> 
</resource-ref> 

당신이 조회하는 코드를 다음 한 자바에서하고 configfilename

<name:resource-ref> 
    <name:ref-name>configFileName</name:ref-name> 
    <name:url>file:///etc/myConfigFile</name:url> 
</name:resource-ref> 

에 대한 값을 정의를 값 :

initialContext = new InitialContext(); 
URL url = (URL) initialContext.lookup("java:comp/env/configFileName"); 
String configFileName = url.getPath(); 

그런 다음 파일을 열고 값이 무엇이든 읽어야합니다.

이 모든 결과는 파일 시스템의 파일에 속성이 있다는 것입니다. 응용 프로그램을 다시 배포하면 덮어 쓰지 않습니다.