2012-03-24 2 views
1

spring roo (maven 프로젝트 - 지속성 아카이브) 단위 테스트를 통해 jar 파일을 만들었습니다. 관련 파일은 다음 위치에 있습니다.웹 응용 프로그램에서 액세스 할 때 Spring Persistence 아카이브 및 entitymanager가 null입니다.

jarFile/META-INF/persistence.xml 
jarFile/META-INF/applicationContext.xml 
jarFile/META-INF/applicationContext-jpa.xml 
jarFile/META-INF/database.properties 

단위 테스트가 제대로 실행 중입니다.

maven 프로젝트이므로 "mvn install"명령을 실행하여 로컬 리포지토리에 추가 한 후 다른 Maven 기반 웹 응용 프로그램에 종속성으로 추가했습니다.

mvn jetty : run 명령을 사용하여 웹 응용 프로그램을 실행하고 있습니다. 웹 응용 프로그램에서 관련 파일이 있습니다.

webApp/WEB-INF/web.xml 
webApp/WEB-INF/applicationContext.xml 

문제점 * 그것의 로딩 웹 애플리케이션/WEB-INF/applicationContext.xml하지만 어떻게 내가 그로드 jarfile가/META-INF/applicationContext.xml 아이를 확인하거나 수없는 이유는 무엇입니까? 실제로 persistence archive에서 서비스 클래스 메소드에 액세스하려고하면 entityManager는 NULL입니다. * web.xml 내에 contextConfigLocation 지시어 (다양한 옵션 시도)를 넣으려고해도 webapp/WEB-INF/applicationContext.xml을로드하지 않습니다.

원하는 내용 웹 응용 프로그램 내에서 지속성 아카이브의 서비스 메소드 (entitymanager를 사용함)를 사용하십시오.

미리 감사드립니다.

+0

하위 응용 프로그램 컨텍스트를 가져 오는 방법은 다음과 같습니다. 그렇지 않으면 자원을 찾을 수없는 이유가 될 수 있습니다. –

+0

Biju는 답장을 보내 주셔서 감사합니다. –

답변

0

조금 파고 답을 찾았습니다. 실제로 컨텍스트 파일을 포함하는 다양한 방법/구문과 혼동 스러웠습니다. 모든 종류의 classpath * : xxx 구문으로 시도했지만 실제로는 WEB-INF가 클래스 경로에 없으므로 다음과 같이 web.xml에 추가해야합니다. 주요 웹 애플리케이션/WEB-INF/applicationContext.xml

<context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/applicationContext.xml</param-value> 
    </context-param> 

를로드하는 것은 다음에 이제 웹 어플리케이션 컨텍스트를로드하는 웹 애플리케이션/WEB-INF는/applicationContext.xml

<import resource="classpath*:META-INF/spring/applicationContext*.xml" /> 

에 다음을 추가했다 jar 파일의 파일. 그리고 일들이 잘되고 있습니다.