java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException

에러는 pom.xml 이나 web.xml 잘 못 건드렸을떄, 또는 아무런 이유없이... 발생 됩니다.

(세개 모두 직접 겪어 봤습니다ㅠㅠ)


이 에러를 해결하기 위해서 이 방법들을 사용했습니다.

이 순서로 한 번 진행 해보세요




1. 프로젝트를 clean 해줍니다.

   * 상단 메뉴 -> 'Project' -> 'Clean' -> All projects or 해당 프로젝트 선택


2. Tomcat server를 Clean

   * Server 의 동작을 원하는 서버를 선택 후 우클릭 하시면 clean 메뉴가 있습니다.


3. 현재 사용중이 Tomcat 폴더의 servlet-api.jar을 사용중인 jdk lib에 붙여넣습니다.

   * 


4. Maven Repository의 javax servlet를 삭제 후 업데이트 합니다.


5. Maven Repository의 모든 폴더 삭제 후 업데이트 합니다. 

   * 프로젝트 -> 우클릭 -> Maven -> Update Project


6. javax.servlet-api 버젼을 3.1.0 으로 설정

   * pom.xml 에서 해당 dependency  에서 설정 해주면 됩니다.


7. 톰캣 폴더를 통째로 삭제 후 재설치




저는 이 방법을 사용 했을때 다행이도 해결이 되었습니다.

다른 분들도 꼭 해결 하시길... 바랍니다 :-)







첫 번째 파일 : web.xml (WEB-INF폴더)

--  WEB-INF 폴더에 'config'란 폴더 생성 후 'presentation-layerbiz.xml' 파일 생성

--  서버 시작될 때, 해당 위치에 있는 context파일을 모조리 읽어들이는 것을 뜻합니다.

     이 경로 안에 파일이 오류나면 서버 실행시 404 에러가 발생합니다.

--  중간의 characterEncoding 은 한글 인코딩을 위해 사용합니다.

--  servlet-name. class, url-pattern 에 오타 없는지 꼭 확인 해야 합니다.

     이 부분은 컨트롤러를 위해 사용 됩니다.




	
 	
		ex(main.do or index.jsp)
		



	
		contextConfigLocation
		/WEB-INF/spring/root-context.xml
	
	
	
		org.springframework.web.context.ContextLoaderListener
	

	
	
		characterEncoding
		org.springframework.web.filter.CharacterEncodingFilter
		
			encoding
			UTF-8
		
	
	
		characterEncoding
		*.do
	


	
	
		action
		org.springframework.web.servlet.DispatcherServlet
		
			contextConfigLocation
			
			/WEB-INF/config/presentation-layerbiz.xml
		
	
		
	
		action
		*.do
	






두 번째 파일 : root-context.xml(WEB-INF -> spring 폴더)

--  DB를 연동 할 때 사용함. 중간중간 DB 및 서버 정보는 사용자에 맞게 입력해야합니다.

--  3 번째 단락의 component-scan은 Service 와 Implement 가 저장된 패키지명으로 해야됩니다.




	
   
   
      
      
      
      
      
   

   
   
      
      
      
   

   
   

      
   

   

   





세 번째 파일 : presentation-layerbix.xml

--  component-scan 의 base-package 부분은 controller 를 저장한 패키지 이름으로 해야합니다.



xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan r />xmlns:context="http://www.springframework.org/schema/context" xsi:schemalocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		"http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd">
  
    
   
   
      
         
   




04번에 이어 Mybatis 까지 설정하고, 테스트 해보는 부분입니다.

<MariaDB 7가지의 테이블과 필드가 존재한다는 가정하에 진행합니다>


우선 pom.xml 에 부분에 해당 dependency 를 추가 해줍니다.

그러면 자동으로 라이브러리를 추가 해줍니다.

 

                 
		
			org.mybatis
			mybatis
			3.3.1
		

		
		
			org.mybatis
			mybatis-spring
			1.2.4
		

		
		
			org.springframework
			spring-jdbc
			${org.springframework-version}
		

		
			org.springframework
			spring-test
			${org.springframework-version}
		

 

 그리고 Mybatis 의 Dependency 도 추가 해줍니다.



 

   

** 환영합니다 !!! _ MVC_Member Test **

[ memberList ]



	

** memberList [MVC_model2] **

id pw name email phoneNumber joinDate userLevel
${member.id} ${member.pw} ${member.name} ${member.email} ${member.phoneNumber} ${member.joinDate} ${member.userLevel}








2019년 3월에 새롭게 스프링 프로젝트 생성, 초기설정을 포스팅 하였습니다.

훨씬 더 자세하게 설명 되어 있습니다. 아래 링크를 참고 해주세요 :)

https://gabrielyj.tistory.com/166?category=735500













프로젝트 우클릭 → Properties → Project Facets →  Java 버젼 설정 및 Runtime 서버 등록.







pom.xml 에서 원하는 내용 및 등록 해줌

프로젝트 생성 직후에는 자바 버젼 및 스프링 프레임 워크 버젼만 설정해줘도 괜찮아요


	
		1.8
		4.2.4.RELEASE
		1.6.10
		1.6.6
	



막 프로젝트가 완성 되었다면 이정도 설정으로 충분하고,

다음 Mybatis 떄부터 복잡하고 중요해집니다ㅜㅜ






	
 	
		index.jsp
		


 	
	
		contextConfigLocation
		/WEB-INF/spring/root-context.xml
	
	
	
		org.springframework.web.context.ContextLoaderListener
	

	
	
		characterEncoding
		org.springframework.web.filter.CharacterEncodingFilter
		
			encoding
			UTF-8
		
	
	
		characterEncoding
		*.do
	


	
	
		action
		org.springframework.web.servlet.DispatcherServlet
		
			contextConfigLocation
			
			/WEB-INF/config/presentation-layerbiz.xml
		
	
		
	
		action
		*.do
	








src/main/java

자바 클래스(Controller, DAO, VO 등)


src/main/resources

자바 클래스들이 사용될 각종 맵퍼(config.xml, mapper 등) 와 설정 파일


src/test/java, src/test/resources

테스트 영역






Maven Dependencies

Pom.xml 에 등록된 Dependency 라이브러리들이 다운로드가 완료되면 표시됨






src/main/webapp/resources: js, css, images 등을 정리해 놓는 곳


src/main/webapp/WEB-INF/spring/root-context.xml

src/main/webapp/WEB-INF/spring/appServllet/servlet-context.xml : 

스프링 프로젝트 설정 파일(공통빈을 설정하는 영역)


src/main/webapp/WEB-INF/view : view말 그대로 jsp,html 영역

(하지만 views 폴더 삭제 후 webapp 에서 웹 페이지 파일을 사용하는 경우도 많음)


src/main/webapp/WEB-INF/web.xml 

배포서술자(Deployment Descriptor) 라고 하며, 해당 파일내에 정의된 설정 내용을 구성해줌


pom.xml

Dependency 를 설정 해줌으로써 의존성관리와 배포를 가능한게 해줌





2019년 3월에 새롭게 스프링 프로젝트 생성, 초기설정을 포스팅 하였습니다.

훨씬 더 자세하게 설명 되어 있습니다. 아래 링크를 참고 해주세요 :)

https://gabrielyj.tistory.com/166?category=735500
















1. 프로젝트를 생성 합니다.

메뉴바 →File → New → Other(Spring Legacy Project)









2. 프로젝트 이름을 설정한다음 (저는 Test001)

Spring MVC Project를 선택 해줍니다.

MVC2 모델을 만들어 주기 위한 기본적인 프로젝트 구조 입니다.







3. 패키지 이름을 정해주는 부분인데, 유의할 부분이 있습니다.

일단 테스트 형식으로 aaa.bbb.Test001을 하였는데,

왜 bbb다음 ccc가 아닌지 궁금하신 분들도 계실것 같습니다.


저 ccc는 서버의 경로를 지정해주는 부분입니다.

만약 ccc로 해주면 프로젝트 이름은Test001 인데 ccc를 참고하기 때문에

서버 실행시 404 에러가 뜨게 됩니다.

그래서 해당 부분을 프로젝트 이름과 같이 해주는것이 좋습니다.


처음 만들때는 잘 몰라서 그냥 aaa.bbb.프로젝트 이름으로 만들었습니다.

하지만 이 부분은 자신이 맘에는 패키지 구조에 맞게 가져가면 될것 같습니다.


지금 보니 왜 이렇게 네이밍을 했는지 모르겠지만... 민망하네요... 울트라 병아리시절 ㅜㅜ

현재 저는  com.frontend.controller 같이 네이밍을 하고 있습니다.





↓↓ 톰캣의 server.xml을 보면 확인이 가능합니다. ↓↓






상단 메뉴바에서 Help → Eclipse Marketplace  → 검색창에 'STS' 검색.


Spring Tools(aka Spting IDE and Spring Tool Suite) 3.9.2 RELEASE를 

설치하시면 됩니다. 버전은 항상 업데이트 되니 너무 신경쓰지 마세요!


저는 이미 다운이 완료 되어있으므로 'Installed'입니다.




제가 이해한 내용이 바탕이라서, 혹시 틀린게 있으면 한 수 알려주세요 !!!


XML 에 Beans 에 Component 하는 방식보다, 좀더 세분화 시켜서 등록 및 사용을 할 수 있게 해줍니다.

당연히 내용은 다르겠지만 비슷한 의미로 씨멘틱header, nav, footer 등으로 나누어서 사용하는 것과 비슷한 개념이라 생각됩니다.


@Component 스프링이 해당 클래스의 객체를 생성 할 수 있게 해줍니다.

하지만 다수의 클래스에서 사용되면 관리 및 파악이 어렵기 때문에 위에 처럼 세분화 시켜주기 때문에,

밑에 세개는 @Component 로 부터 상속 받아 사용됩니다.


@Repository 는 DB 쿼리를 수행하는 DAO에 사용됩니다.


@Service 는 실제 사용되는 메소드들이 사용되는 ~ServiceImpl 부분에서 사용됩니다.


@Controller 는 Controller 클래스에서 사용됩니다.


만약 @Repository 에 등록된 DAO 를 @Autowired 를 이용해서 사용(주입)할때, 복수의 DAO가 등록 된다면 오류가 발생합니다. 그때 @Qualifier 를 이용하여 구분 해줄 수 있습니다.


@Austowired 와 @Inject 어노테이션 모두 주입을 위한 어노태이션이지만, @Inject는 자바에서도 사용 되기 때문에 훨씬 범위가 넓습니다. 그래서 Spring 프로젝트를 진행중이시라면 @Autowired로도 충분할 것 같습니다.



※현재 공부 중인 내용을 정리 하는중이라서 절대 완벽할 수 없습니다. 혹시 보고 틀린 내용이 있으면 꼭 한 수 부탁드립니다 !






오늘의 포스팅은 김보경-봄처럼입니다.

이 곡은 2011년 개봉했던 영화'로맨틱 헤븐'의 OST입니다.

로맨틱헤븐이라는 영화가 낯선 분들도 계실텐데요

이 영화는 장진 감독, 김동욱, 김지원, 김수로씨 주연의 영화입니다.

요즘 드라마 '태양의 후예'가 대세인거 아시죠?

거기에 출연한 김지원씨의 풋풋한 모습도 엿보이네요^^

봄처럼이라는 곡은 슈퍼스타K2에 나왔던 김보경씨의 곡으로

요즘 같은 봄에 잘 어울리는 곡입니다.

주로 파워풀한 음악이 많았었는데 이렇게 편안한 음악도 잘 어울리네요.

라디오나 음악듣게 되면 벚꽃엔딩이나 봄봄봄같은 봄음악이 많이 나오지만

가사도 예쁘고 부드럽고 편안한 봄처럼도 한번 들어보시면 좋을 것 같아요!!

나른해지고 참 좋네요:)

가사와 함께 감상해보시죠.





가사




낡고 해진 추억들 험히 닳은 내 맘들
그만할래 여기서 멈출래 
행복해질래 그만할래
왜 사랑은 늘 내게서 
아픔인 건지 힘이 든건지
다신 머리 아닌 가슴에 누굴 담는 일
없을거라 그렇게 난 믿었었는데

말보다 난 미소가 번져
너만 생각하면 행복해져
얼어붙은 내 맘 녹여주는 햇살 한줄기
손 끝에 닿은 따스한 온기

봄처럼 내 사랑이 왔어
일분 일초마저 아쉬울만큼
너로 싹튼 설렘은 내 맘을 춤추게 해
사랑인가봐 널 사랑하나봐

또 썼다 지운 문자들 전해지지 못한 말
여전히 난 겁이나 자꾸만 
널 잃게될까 두려운걸
몇번을 생각해봐도 
네가 없이 난 안될 것 같아
벌써 눈물이 차 올라와 숨이 막혀와 
차라리 네 곁에서 나 아파진대도

너는 나를 웃게 한 사람 
너만 생각하면 행복해져
얼어붙은 내 맘 녹여주는 햇살 한줄기
손 끝에 닿은 따스한 온기

봄처럼 내 사랑이 왔어 
일분 일초마저 아쉬울 만큼
너로 싹튼 설렘은 내 맘을 춤추게 해
사랑인가봐 널 사랑하나봐 음

언젠가에 내게로 왔어 
나를 꽃피우는 봄이 된 사람
사랑해 널 사랑해 감사해 또 감사해 
내게 와줘서 내 사람 돼 줘서



(출처:네이버뮤직)




+ Recent posts