tomcat 배포시 No bean named 'dataSource' available 관련2
- 작성자 :
- 최*구
- 작성일 :
- 2020-09-03 19:02:25
- 조회수 :
- 4,078
- 구분 :
- 공통컴포넌트
- 진행상태 :
- 완료
Q
고생많으십니다. 먼저 앞선 글에 대해 답변해주셔서 감사합니다.
제가 이전에 글을 올렸을 때, 마지막에 언급한 부분을 토대로 하면 해결이 될 듯 해서 코멘트를 추가로 드렸는데, 제가 생각한 방향과는 약간 벗어난 답을 주셔서 (앞서 답을 주신 분에겐 송구하지만) 공통컴포넌트에 질의를 하는 게 적합하다고 생각되어 글을 다시 올립니다.
버전은 3.8 이며, Windows 환경입니다.
공통컴포넌트에서 로그인 관련 컴포넌트를 선택하여 프로젝트를 생성하였습니다.
globals.properties에 Globals.Auth=security로 변경하였습니다.
다만, Eclipse에서 실행하는 것이 아닌 war 파일을 tomcat에 배포하여 접속하고자 합니다.
하지만 오류로 인해 접속이 되지 않았는데, 일단 아래와 같이 조치하여 문제를 해결했습니다. 혹시 센터에서 보시기엔 어떤지 궁금합니다.
해당 오류는 아래와 같습니다.
DEBUG [egovframework.com.cmm.service.EgovProperties] Property file not found.
java.io.FileNotFoundException: C:\Program%20Files\Apache%20Software%20Foundation\Tomcat%208.5\webapps\LoginProject\WEB-INF\classes\egovframework\egovProps\globals.properties (지정된 경로를 찾을 수 없습니다)
globals.properties의 파일 경로를 찾을 수 없는 부분이 아래 자바 파일 관련되어 있는 거 같아서, 약간 수정하였는데요,
src/main/java/egovframework/com/cmm/service/EgovProperties.java
문제는 띄어쓰기 경로(%20)로 인해 찾을 수 없는 것인데, RELATIVE_PATH_PREFIX 부분에서 띄어쓰기를 %20으로 처리하여 파일 경로를 찾을 수 없는 것으로 판단됩니다. 그래서 아래와 같이 "%20"을 " "으로 replaceAll을 통해 하니까 됐는데, 올바른 해결 방안인지 모르겠습니다...
public static final String RELATIVE_PATH_PREFIX = EgovProperties.class.getResource("").getPath().substring(0, EgovProperties.class.getResource("").getPath().lastIndexOf("com")).replaceAll("%20", " ");
물론, 일반적인 경우라면 띄어쓰기가 있는 게 흔하진 않지만, Windows 환경이라면 띄어쓰기를 전혀 고려하지 않을 수는 없다고 생각은 됩니다.
혹시 좀 더 나은 방향이 있으면 알려주시면 감사하겠습니다. 답변 부탁드리겠습니다. 이상입니다.
제가 이전에 글을 올렸을 때, 마지막에 언급한 부분을 토대로 하면 해결이 될 듯 해서 코멘트를 추가로 드렸는데, 제가 생각한 방향과는 약간 벗어난 답을 주셔서 (앞서 답을 주신 분에겐 송구하지만) 공통컴포넌트에 질의를 하는 게 적합하다고 생각되어 글을 다시 올립니다.
버전은 3.8 이며, Windows 환경입니다.
공통컴포넌트에서 로그인 관련 컴포넌트를 선택하여 프로젝트를 생성하였습니다.
globals.properties에 Globals.Auth=security로 변경하였습니다.
다만, Eclipse에서 실행하는 것이 아닌 war 파일을 tomcat에 배포하여 접속하고자 합니다.
하지만 오류로 인해 접속이 되지 않았는데, 일단 아래와 같이 조치하여 문제를 해결했습니다. 혹시 센터에서 보시기엔 어떤지 궁금합니다.
해당 오류는 아래와 같습니다.
DEBUG [egovframework.com.cmm.service.EgovProperties] Property file not found.
java.io.FileNotFoundException: C:\Program%20Files\Apache%20Software%20Foundation\Tomcat%208.5\webapps\LoginProject\WEB-INF\classes\egovframework\egovProps\globals.properties (지정된 경로를 찾을 수 없습니다)
globals.properties의 파일 경로를 찾을 수 없는 부분이 아래 자바 파일 관련되어 있는 거 같아서, 약간 수정하였는데요,
src/main/java/egovframework/com/cmm/service/EgovProperties.java
문제는 띄어쓰기 경로(%20)로 인해 찾을 수 없는 것인데, RELATIVE_PATH_PREFIX 부분에서 띄어쓰기를 %20으로 처리하여 파일 경로를 찾을 수 없는 것으로 판단됩니다. 그래서 아래와 같이 "%20"을 " "으로 replaceAll을 통해 하니까 됐는데, 올바른 해결 방안인지 모르겠습니다...
public static final String RELATIVE_PATH_PREFIX = EgovProperties.class.getResource("").getPath().substring(0, EgovProperties.class.getResource("").getPath().lastIndexOf("com")).replaceAll("%20", " ");
물론, 일반적인 경우라면 띄어쓰기가 있는 게 흔하진 않지만, Windows 환경이라면 띄어쓰기를 전혀 고려하지 않을 수는 없다고 생각은 됩니다.
혹시 좀 더 나은 방향이 있으면 알려주시면 감사하겠습니다. 답변 부탁드리겠습니다. 이상입니다.
A
안녕하세요.
표준프레임워크센터입니다.
우선 전자정부 표준프레임워크에 관심을 가져주시고
또 좀 더 나은 코드에 대해 고민해 주셔서 감사합니다.
질문자님께 말씀하신 대로 WhiteSpace 문자를 치환하셔서 사용하셔도 무방할 것 같습니다.
표준프레임워크에서 제공하는 공통컴포넌트는 개발 편의를 위해 제공되는 서비스로서
'꼭 이런 방법으로 개발해야 한다'는 법칙은 없습니다.
개별 사이트의 환경에 맞게 고쳐쓰셔도 무방합니다.
이같은 케이스와 같은 경우 URI로 변환하여 path를 받아 사용할 수 있으나 이 또한 URISyntaxException의 경우가 존재할 수 있습니다.
혹시 더 좋은 방법이 있다면 함께 공유 부탁드립니다.
감사합니다.
표준프레임워크센터입니다.
우선 전자정부 표준프레임워크에 관심을 가져주시고
또 좀 더 나은 코드에 대해 고민해 주셔서 감사합니다.
질문자님께 말씀하신 대로 WhiteSpace 문자를 치환하셔서 사용하셔도 무방할 것 같습니다.
표준프레임워크에서 제공하는 공통컴포넌트는 개발 편의를 위해 제공되는 서비스로서
'꼭 이런 방법으로 개발해야 한다'는 법칙은 없습니다.
개별 사이트의 환경에 맞게 고쳐쓰셔도 무방합니다.
이같은 케이스와 같은 경우 URI로 변환하여 path를 받아 사용할 수 있으나 이 또한 URISyntaxException의 경우가 존재할 수 있습니다.
혹시 더 좋은 방법이 있다면 함께 공유 부탁드립니다.
감사합니다.