Can not find the tag library descriptor for "http://  java.sun.com/jsp/jstl/core"


이런 에러가 발생한다면, 우선 pom.xml 로 가서 'javax.servlet' 부분을 확인 하세요


<dependency>

<groupId>javax.servlet</groupId>

<artifactId>jstl</artifactId>

<version>1.2</version>

</dependency>


하지만 해당 부분이 별 문제가 없다면, Project를 clean 해보세요

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


그래도 안 되신다면, 

Maven 저장 경로에서 pom.xml에 등록된 jstl의 jar파일이 있는지 확인 해주세요.

만약 없으면 Maven 업데이트를 해주면 자동으로 다시 설치 됩니다.

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


보통 pom.xml을 잘 못 만지거나, 아무런 이유 없이 발생 하더군요...

아무런 이유가 없다면 첫 번째 방법을 써보시고,

아니라면 두 번째 방법을 써보세요 :-)


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">
  
    
   
   
      
         
   




잘 되던 서버가 어느날부터 느려지더니 원인을 알 수 없는 에러가 발생 했었습니다.

Server Tomcat v8.5 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor. 

이 내용의 에러 였는데, 알아보니 상당히 간단히 해결 할 수 있는 문제였더라구요


서버의 타임 아웃이 45초 설정 되어 있는데, 요청 이후 45초간 작동하지 않았을때 발생한 에러 였습니다.

해결 방법은 그냥 타임 아웃 시간 좀 더 넉넉하게 주면 되요!



사용중이 서버 설정에 들어갑니다. 더블 클릭해도 들어가져여

그리고 아랫부분의 시간을 설정 해주시면 됩니다.







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
	











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로도 충분할 것 같습니다.



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



+ Recent posts