jFile모듈이 common.properties file을 Tomcat 에서는 잘 찾는데, WebLogic 에서는 못찾습니다.
- 작성자 :
- 박*병
- 작성일 :
- 2015-12-08 10:32:02
- 조회수 :
- 2,188
- 구분 :
- 공통컴포넌트
- 진행상태 :
- 완료
Q
jFile모듈이 common.properties file을 Tomcat 에서는 잘 찾는데, WebLogic 에서는 못찾습니다.
(1) 아래는 Tomcat 에서 log 로 찍은 common.properties file의 file path 입니다.
(Tomcat 에서는 Application이 common.properties file찾아서, jFile에 필요한 system.uploadpath property를 읽을 수 있습니다.)
~/WEB-INF/classes/egovframework/egovProps\common.properties
(2) 아래는 같은 Application을 WebLogic 상에서 실행 했을 때, log 로 찍은 common.properties file의 path 입니다.
(Weblogic에서는 common.properties file이 File Not Found error 가 나는 데, common.properties file을 아래의 경로에서 찾다가 error가 납니다.)
~/WEB-INF/lib/_wl_cls_gen.jar!/egovframework/egovProps\common.properties
소스코드의 변경없이 하나의 Application을 Tomcat과 Weblogic에서 실행한 결과, 위와 같이 Weblogic에서만 common.properties file을 못찾는 문제가 발생하였습니다.
어떻게 하면 Weblogic에서도 common.properties file을 찾을 수 있게 할 수 있는 지 알려주시면 감사하겠습니다.
------
(질문의 추가사항)
egovframework.com.cmm.service.EgovProperties.java source code 를 보면 (Line 56, 58에) 아래와 같은 문장들이 있습니다.
public static final String RELATIVE_PATH_PREFIX = EgovProperties.class.getResource("").getPath().substring(0, EgovProperties.class.getResource("").getPath().lastIndexOf("com"));
public static final String GLOBALS_PROPERTIES_FILE
= RELATIVE_PATH_PREFIX + "egovProps" + System.getProperty("file.separator") + "common.properties";
여기에서 WebLogic에서 'common.properties' file을 못찾는 이유가 EgovProperties.class.getResource("") 이 부분 때문인 것 같습니다. 왜냐하면, getResource() 의 implementation은 ClassLoader의 implementation 마다 다르다고 하는데, Tomcat의 ClassLoader 와 WebLogic의 ClassLoader implementation이 다르기 때문에, 위의 getResource() 가 WebLogic에서는 Tomcat과 다른 URL 값을 return 하기 때문인 것 같습니다.
Tomcat과 WebLogic 에서 모두 같은 common.properties file의 path 값을 구하려면 어떻게 하는 지 알려주시면 답변이 되겠습니다.
(1) 아래는 Tomcat 에서 log 로 찍은 common.properties file의 file path 입니다.
(Tomcat 에서는 Application이 common.properties file찾아서, jFile에 필요한 system.uploadpath property를 읽을 수 있습니다.)
~/WEB-INF/classes/egovframework/egovProps\common.properties
(2) 아래는 같은 Application을 WebLogic 상에서 실행 했을 때, log 로 찍은 common.properties file의 path 입니다.
(Weblogic에서는 common.properties file이 File Not Found error 가 나는 데, common.properties file을 아래의 경로에서 찾다가 error가 납니다.)
~/WEB-INF/lib/_wl_cls_gen.jar!/egovframework/egovProps\common.properties
소스코드의 변경없이 하나의 Application을 Tomcat과 Weblogic에서 실행한 결과, 위와 같이 Weblogic에서만 common.properties file을 못찾는 문제가 발생하였습니다.
어떻게 하면 Weblogic에서도 common.properties file을 찾을 수 있게 할 수 있는 지 알려주시면 감사하겠습니다.
------
(질문의 추가사항)
egovframework.com.cmm.service.EgovProperties.java source code 를 보면 (Line 56, 58에) 아래와 같은 문장들이 있습니다.
public static final String RELATIVE_PATH_PREFIX = EgovProperties.class.getResource("").getPath().substring(0, EgovProperties.class.getResource("").getPath().lastIndexOf("com"));
public static final String GLOBALS_PROPERTIES_FILE
= RELATIVE_PATH_PREFIX + "egovProps" + System.getProperty("file.separator") + "common.properties";
여기에서 WebLogic에서 'common.properties' file을 못찾는 이유가 EgovProperties.class.getResource("") 이 부분 때문인 것 같습니다. 왜냐하면, getResource() 의 implementation은 ClassLoader의 implementation 마다 다르다고 하는데, Tomcat의 ClassLoader 와 WebLogic의 ClassLoader implementation이 다르기 때문에, 위의 getResource() 가 WebLogic에서는 Tomcat과 다른 URL 값을 return 하기 때문인 것 같습니다.
Tomcat과 WebLogic 에서 모두 같은 common.properties file의 path 값을 구하려면 어떻게 하는 지 알려주시면 답변이 되겠습니다.
A
안녕하세요.
표준프레임워크 센터 입니다.
(1) 아래는 Tomcat 에서 log 로 찍은 common.properties file의 file path 입니다.
(Tomcat 에서는 Application이 common.properties file찾아서, jFile에 필요한 system.uploadpath property를 읽을 수 있습니다.)
(2) 아래는 같은 Application을 WebLogic 상에서 실행 했을 때, log 로 찍은 common.properties file의 path 입니다.
(Weblogic에서는 common.properties file이 File Not Found error 가 나는 데, common.properties file을 아래의 경로에서 찾다가 error가 납니다.)
WebLogic에서 'common.properties' file을 못찾는 이유가 EgovProperties.class.getResource("") 이 부분 때문인 것 같습니다. 왜냐하면, getResource() 의 implementation은WebLogic의 implementation 마다 다르다고 하는데, Tomcat의 ClassLoader 와 WebLogic의 ClassLoader implementation이 다르기 때문에, 위의 getResource() 가 WebLogic에서는 Tomcat과 다른 URL 값을 return 하기 때문인 것 같습니다.
> 표준프레임워크에서는 오픈소스 WAS인 Tomcat기반으로 제공하고 있습니다.
> 상용 WAS인 WebLogic에서 ClassLoader를 다른 정책에 의해 관리 되는거 같습니다.
> 해당 벤더사에 ClassLoader 정책을 물어서 처리 하셔야 될꺼 같습니다.
Tomcat과 WebLogic 에서 모두 같은 common.properties file의 path 값을 구하려면 어떻게 하는 지 알려주시면 답변이 되겠습니다.
> 모두 같은 common.properties file의 path 값을 처리 할수는 없을꺼 같습니다.
> 상대경로를 절대경로로 바꿔서 처리 하거나 해당 벤더사에 ClassLoader 정책으로 수정 하시면 될꺼 같습니다.
표준프레임워크 센터 입니다.
(1) 아래는 Tomcat 에서 log 로 찍은 common.properties file의 file path 입니다.
(Tomcat 에서는 Application이 common.properties file찾아서, jFile에 필요한 system.uploadpath property를 읽을 수 있습니다.)
(2) 아래는 같은 Application을 WebLogic 상에서 실행 했을 때, log 로 찍은 common.properties file의 path 입니다.
(Weblogic에서는 common.properties file이 File Not Found error 가 나는 데, common.properties file을 아래의 경로에서 찾다가 error가 납니다.)
WebLogic에서 'common.properties' file을 못찾는 이유가 EgovProperties.class.getResource("") 이 부분 때문인 것 같습니다. 왜냐하면, getResource() 의 implementation은WebLogic의 implementation 마다 다르다고 하는데, Tomcat의 ClassLoader 와 WebLogic의 ClassLoader implementation이 다르기 때문에, 위의 getResource() 가 WebLogic에서는 Tomcat과 다른 URL 값을 return 하기 때문인 것 같습니다.
> 표준프레임워크에서는 오픈소스 WAS인 Tomcat기반으로 제공하고 있습니다.
> 상용 WAS인 WebLogic에서 ClassLoader를 다른 정책에 의해 관리 되는거 같습니다.
> 해당 벤더사에 ClassLoader 정책을 물어서 처리 하셔야 될꺼 같습니다.
Tomcat과 WebLogic 에서 모두 같은 common.properties file의 path 값을 구하려면 어떻게 하는 지 알려주시면 답변이 되겠습니다.
> 모두 같은 common.properties file의 path 값을 처리 할수는 없을꺼 같습니다.
> 상대경로를 절대경로로 바꿔서 처리 하거나 해당 벤더사에 ClassLoader 정책으로 수정 하시면 될꺼 같습니다.