2009-07-01 2 views
4

JBoss 4에서 제대로 작동하는 웹 응용 프로그램을 개발했습니다. 이제 Tomcat 6에서 작동하게해야하지만 일부 등록 정보 파일에 액세스하는 데 문제가 있습니다. 본인은이 파일을 읽을 다음 코드를 사용Tomcat의 webapp에서 등록 정보 파일을 검색하는 중 문제가 발생했습니다.

InputStream is = Thread.currentThread().getContextClassLoader() 
       .getResourceAsStream(fileName); 
if (is == null) { 
    throw new StartupError("Error loading " + fileName); 
} 

properties.load(is); 

내가 전에 말했듯, 그것은 보스 4에서 잘 작동하지만 바람둥이 내 응용 프로그램을 배포 할 때, 그것은 할당, 파일을 찾을 수 없습니다 startupError가 Throw되도록하는 변수는 'is'입니다. 이 파일은 WEB-INF/config 디렉토리에 있으며 webapp는 전쟁으로 배포됩니다.

이 문제에 대한 해결책은 있습니까?

감사합니다, 알렉상드르

답변

3

은 WEB-INF/classes에 특성 파일을 넣습니다.

webapp Jar 파일 중 하나의 루트에 포함 시키십시오. 그러나 편집하기가 더 어려워집니다. 빌드 스크립트 내에서 속성을 선택하고 배포 한 후에는 속성을 편집하지 않으려는 경우에 유용합니다.

+0

안녕하세요 JeeBee, 해결책이 효과적이었습니다. 하지만 왜 JBoss의 WEB-INF/config에서 파일에 액세스 할 수 있었는지 알 수 있습니까? Tomcat에서 만들 수 없었습니까? – Alexandre

+0

config 폴더는 JBoss 아이디어라고 생각합니다. 물론 Tomcat에서도 지원하고 싶습니다. – JeeBee

0

Tomcat이 웹 응용 프로그램 클래스 경로에 WEB-INF/config를 추가하지 않는다고 가정합니다.

http://tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html에서 WebappX이 - 클래스 로더는 하나의 톰캣 6 인스턴스에 배치 된 각각의 웹 어플리케이션에 대해 생성됩니다. 웹 응용 프로그램 아카이브의/WEB-INF/classes 디렉토리에있는 압축을 푼 모든 클래스와 자원 외에도 웹 응용 프로그램 아카이브의/WEB-INF/lib 디렉토리 아래에있는 JAR 파일의 클래스와 자원이 포함 된 웹 응용 프로그램에 표시됩니다 , 그러나 다른 사람에게.

관련 문제