Egovframe Core project를 runnable jar 로 실행시 에러
- 작성자 :
- 김*원
- 작성일 :
- 2014-07-04 02:19:45
- 조회수 :
- 5,121
- 구분 :
- 기타
- 진행상태 :
- 완료
Q
안녕하세요?
제목에 적은바와 같이 Egovframe Core 프로젝트를 만들어서
데몬형태로 실행해야 하는 상황입니다.
프로젝트를 만들고 테스트시에 이클립스에서는 정상적으로 실행이 됩니다.
그러나 이것을 이클립스 팝업 메뉴의 Export... > Java > Runnable JAR File로 익스포트 받아서
다음과 같이 실행하면 오류가 발생합니다.
컨텍스트의 설정파일의 경로를 제대로 인식하지 못해서 발생하는 오류 인 것으로 생각됩니다.
프로젝트의 구조는 개발환경 2.7.1 버전의 기본 생성구조이며, 컨텍스트 설정파일 경로도 기본 경로이며
main 메소드에서 컨텍스트 생성 코드 또한 기본 생성코드를 그대로 사용하였습니다.
C:\run> java -jar project.jar
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStore
Exception: Could not resolve bean definition resource pattern [classpath:/egovfr
amework/spring/context-*.xml]; nested exception is java.io.FileNotFoundException
: class path resource [egovframework/spring/] cannot be resolved to URL because
it does not exist
at org.springframework.beans.factory.support.AbstractBeanDefinitionReade
r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:190)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReade
r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReade
r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212)
at org.springframework.context.support.AbstractXmlApplicationContext.loa
dBeanDefinitions(AbstractXmlApplicationContext.java:126)
at org.springframework.context.support.AbstractXmlApplicationContext.loa
dBeanDefinitions(AbstractXmlApplicationContext.java:92)
at org.springframework.context.support.AbstractRefreshableApplicationCon
text.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)
at org.springframework.context.support.AbstractApplicationContext.obtain
FreshBeanFactory(AbstractApplicationContext.java:467)
at org.springframework.context.support.AbstractApplicationContext.refres
h(AbstractApplicationContext.java:397)
... 10 more
C:\run>
그리고 혹시 권장하시는 Core 프로젝트 배포방법이 있으면, 같이 설명 부탁드립니다.
제목에 적은바와 같이 Egovframe Core 프로젝트를 만들어서
데몬형태로 실행해야 하는 상황입니다.
프로젝트를 만들고 테스트시에 이클립스에서는 정상적으로 실행이 됩니다.
그러나 이것을 이클립스 팝업 메뉴의 Export... > Java > Runnable JAR File로 익스포트 받아서
다음과 같이 실행하면 오류가 발생합니다.
컨텍스트의 설정파일의 경로를 제대로 인식하지 못해서 발생하는 오류 인 것으로 생각됩니다.
프로젝트의 구조는 개발환경 2.7.1 버전의 기본 생성구조이며, 컨텍스트 설정파일 경로도 기본 경로이며
main 메소드에서 컨텍스트 생성 코드 또한 기본 생성코드를 그대로 사용하였습니다.
C:\run> java -jar project.jar
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStore
Exception: Could not resolve bean definition resource pattern [classpath:/egovfr
amework/spring/context-*.xml]; nested exception is java.io.FileNotFoundException
: class path resource [egovframework/spring/] cannot be resolved to URL because
it does not exist
at org.springframework.beans.factory.support.AbstractBeanDefinitionReade
r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:190)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReade
r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReade
r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212)
at org.springframework.context.support.AbstractXmlApplicationContext.loa
dBeanDefinitions(AbstractXmlApplicationContext.java:126)
at org.springframework.context.support.AbstractXmlApplicationContext.loa
dBeanDefinitions(AbstractXmlApplicationContext.java:92)
at org.springframework.context.support.AbstractRefreshableApplicationCon
text.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)
at org.springframework.context.support.AbstractApplicationContext.obtain
FreshBeanFactory(AbstractApplicationContext.java:467)
at org.springframework.context.support.AbstractApplicationContext.refres
h(AbstractApplicationContext.java:397)
... 10 more
C:\run>
그리고 혹시 권장하시는 Core 프로젝트 배포방법이 있으면, 같이 설명 부탁드립니다.
A
안녕하세요. 김홍원님.
우선 2가지가 확인되셔야 할 것 같습니다.
첫번째로 ApplicationContext를 만드실 때에 resource 지정 시 "classpath:/.."가 아닌 "classpath*:/.."와 같이 지정하셔야 할 것 같습니다.
두번째의 경우는 실제 참조되는 다른 library(spring-*.jar 등)에 대하여 classpath 상에 지정하시거나, Runnable JAR 파일 의 META-INF/MANIFEST.MF 파일 상에 추가적인 jar들을 Class-Path 항목으로 지정하셔셔 참조하셔야 할 것 같습니다.
그럼, 즐거운 하루되십시오.
감사합니다.
우선 2가지가 확인되셔야 할 것 같습니다.
첫번째로 ApplicationContext를 만드실 때에 resource 지정 시 "classpath:/.."가 아닌 "classpath*:/.."와 같이 지정하셔야 할 것 같습니다.
두번째의 경우는 실제 참조되는 다른 library(spring-*.jar 등)에 대하여 classpath 상에 지정하시거나, Runnable JAR 파일 의 META-INF/MANIFEST.MF 파일 상에 추가적인 jar들을 Class-Path 항목으로 지정하셔셔 참조하셔야 할 것 같습니다.
그럼, 즐거운 하루되십시오.
감사합니다.