Web Project에다가 Spring MVC를 적용하는 과정에서 web.xml 에 `Listener`를 추가하고 서버를 실행시키면 아래의 메시지가 출력한다.

  
2월 04, 2013 2:50:09 오후 org.apache.catalina.core.StandardContext listenerStop
심각: Exception sending context destroyed event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext
	at org.springframework.context.support.AbstractRefreshableApplicationContext.getBeanFactory(AbstractRefreshableApplicationContext.java:172)
	at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1071)
	at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1045)
	at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:993)
	at org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:548)
	at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:142)
	at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4831)
	at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5478)
	at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:160)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
	at java.util.concurrent.FutureTask.run(FutureTask.java:166)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)


 

 발생원인

 

ContextLoaderListener 을 Listener로 등록해두면, 웹 애플리케이션이 시작할 때 자동으로 루트 애플리케이션 컨텍스트를 만들고 초기화를 한다. 디폴트Default로 XmlWebApplicationContext를 애플리케이션 컨텍스트 클래스가 지정되고 /WEB-INF/applicationContext.xml을 탐색한다. 이때, applicationContext.xml 파일을 찾지 못하면서 발생한다.


 

 해결방법

 

1. /WEB-INF/applicationContext.xml 생성 및 설정

2. web.xml 내에  <context-param></context-param> 으로 ~Context.xml 을 지정

  

        contextConfigLocation
        /WEB-INF/spring/appServlet/applicationContext.xml


위의 두 가지 방법 중 하나를 선택해서 처리하면 된다.




DispatcherServlerDI전략.mm



토비의 스프링 3

저자
이일민 지음
출판사
에이콘출판 | 2010-08-24 출간
카테고리
컴퓨터/IT
책소개
스프링 프레임워크 3 기초 원리부터 고급 실전활용까지 완벽 가이...
가격비교 글쓴이 평점  


Getter/Setter, toString() 과 hashCode() 등의 메소드들을 Lombok project의 애노테이션을 이용해서 손쉽게 작성해보자. 마크다운Markdown 으로 작성한 글이라서 블로그에 옮기는 과정이 번거로운 탓에 gitblog.ihoney.pe.kr 에 등록하고 링크만 걸도록 하겠다. 소스코드가 들어간 코드들은 앞으로 이렇게 작성해보려고 한다.

Lombok project : http://projectlombok.org/index.html

관련 페이지 : http://gitblog.ihoney.pe.kr/blog/2013/01/23/use-lombok-annotation-in-java-project/

Mac에서 이클립스 등의 자바실행환경이 필요한 앱을 실행시키면 자동으로 자바를 설치할 것을 묻고, 허가하면 "1.6.0_37" 버전을 설치한다. 현재 버전이면 딱히 실행시키는데 문제는 없다. 그래도~ 나름 '자바를 기반으로 하는 개발자인데 JDK 7 최신버전을 사용해줘야 하지 않겠어?'라는 생각으로 JDK 7을 다운르도 받고 설치하는 법을 기록으로 남겨둔다. 하위버전과의 호환성이 대부분 유지되는 상황이라 딱히 문제될 것은 없을 것이다.


   1. 다운로드  
 

* 다운로드 페이지 : http://www.oracle.com/technetwork/java/javase/downloads/index.html
    * 현재(2013.01.21) Java SE 7u11 다운로드 가능
    * 파일명 : jdk-7u11-macosx-x64.dmg




jdk-7u11-macosx-x64.dmg 다운로드



   2. 설치하기  
 

JDK 7 설치전 버전확인

1. 다운로드 받은 jdk-xxx-x65.dmg 실행
2. JDK double-click on icon to install

3. 각 단계 진행





    3. 확인  
 

* JDK 설치 위치 : /Library/Java/JavaVirtualMachines
    * JDK 설치위치에 jdk1.7.0_11.jdk 이 생성되어 있으면 정상설치 완료 된 것임
* Java 버전 확인 : java -version
    * 1.7.0_11 설치 확인


   4. 제거방법  
 

* JDK 설치위치
    * /Library/Java/JavaVirtualMachines/ 하위
        /Library/Java/JavaVirtualMachines/jdk<major>.<minor>.<macro[_update]>.jdk
* 설치되어 있는 JDK 디렉토리 제거
    * JDK 7u11 예 : rm -rf jdk1.7.0_11.jdk


 

 참고문헌 

 

* JDK 7 Installation for Mac OS X : http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html
* Java Documetation : http://www.oracle.com/technetwork/java/javase/documentation/index.html


'OS & Etc > Mac' 카테고리의 다른 글

Homebrew 설치하기 in mac  (0) 2013.01.22

주변의 개발자들이 "인텔리j, 인텔리j"노래를 부르기에 한번 써볼까 하는 마음에 다운로드를 받아본다.

IntelliJ IDEA : http://www.jetbrains.com/idea/

현재 버전은 아래 그림에서 보다시피 IntelliJ IDEA 12 버전이다.

가격은 보는 것과 같다. 개인으로 구매하려 하면 근 $200 달러. 지난번에 25% 할인행사가 있었는데 필리핀에 있느라 구매를 못한 아쉬움이 있다.

개인적으로 사용해볼 목적으로는 Community Edition을 다운로드 받아서 실행해봐도 무리는 없을 듯 하다. 써보고 좋으면, 사는거지.


<설치화면>


+ Recent posts