스프링부트에서 예전처럼 jstl을 사용하기 위해 pom.xml 파일에 dependency를 설정합니다.

 

               <dependency>
                       <groupId>javax.servlet</groupId>
                       <artifactId>jstl</artifactId>
                       <version>1.2</version>
               </dependency>

 

이게 기존에 사용하던 jstl 내용인데 Spring Boot 3.0부터는 오류가 발생 합니다.

 

웹 브라우저에서는 [Whitelabel Error Page]와 함께 하단에 status=500 오류가 나타납니다.

 

 

 

Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Thu Feb 15 09:19:28 KST 2024
There was an unexpected error (type=Internal Server Error, status=500).
 

 

 

서버 로그에서는 Servlet.service() for servlet [jsp] threw exception 오류가 발생합니다.

 

 

 

2024-02-15T09:19:27.884+09:00  INFO ---[nio-8080-exec-1]o.a.c.c.C.[Tomcat].[localhost].[/]      : Initializing Spring DispatcherServlet 'dispatcherServlet'

2024-02-15T09:19:27.884+09:00  INFO ---[nio-8080-exec-1]o.s.web.servlet.DispatcherServlet       : Initializing Servlet 'dispatcherServlet'

2024-02-15T09:19:27.886+09:00  INFO ---[nio-8080-exec-1]o.s.web.servlet.DispatcherServlet       : Completed initialization in 2 ms

2024-02-15T09:19:28.149+09:00 ERROR ---[nio-8080-exec-1]o.a.c.c.C.[.[localhost].[/].[jsp]       : Servlet.service() for servlet [jsp] threw exception

 

java.lang.ClassNotFoundException: javax.servlet.jsp.tagext.TagLibraryValidator

        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na]

        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]

        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[na:na]

        at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[na:na]

        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017) ~[na:na]

 

 

지금까지 잘 사용하던 jstl dependency라 잘못 적용한 내용은 없지만 Spring Boot 버전이 맞지 않아 발생하는 오류입니다.

 

기존 jstl 1.2 설정은 Spring Boot 3.0부터 지원을 하지 않으므로 가능하면 다른 해결방법을 찾기 위해 노력하지 말고 다른 dependency를 설정해 주면 됩니다.

 

 

               <dependency>

                       <groupId>jakarta.servlet</groupId>

                       <artifactId>jakarta.servlet-api</artifactId>

                       <version>6.0.0</version>

                       <scope>provided</scope>

               </dependency>

              

               <dependency>

                       <groupId>jakarta.servlet.jsp.jstl</groupId>

                       <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>

                       <version>3.0.0</version>

               </dependency>

                             

               <dependency>

                       <groupId>org.glassfish.web</groupId>

                       <artifactId>jakarta.servlet.jsp.jstl</artifactId>

                       <version>3.0.1</version>

               </dependency>

 

 

이렇게 수정된 내용으로 pom.xml에 추가를 하고 예전처럼 Controller를 작성해서

 

@Controller

public class TestController {

 

        @RequestMapping("/test/cal")

        public String cal() throws Exception {

               return "test/cal";

        }

}

 

 

실행을 하면 아무런 일 없이 cal.jsp를 호출하고 결과를 볼 수 있습니다.

 

 

- copy coding -

 


현재 나와있는 스프링 부트는 4버전이지만 좀 안정적인 사용을 위해서는 3버전을 설치하기로 하고 다운로드 페이지로 이동을 합니다.

https://github.com/spring-projects/toolsuite-distribution/wiki/Spring-Tool-Suite-3


Spring 사이트는 텍스트 위주로 되어 있어서 정보를 많이 얻을 수는 있지만 뭐가 찾으려면 직관적으로 찾기는 좀 어려운 사이트인것 같습니다.


spring boot download install


링크된 페이지에 가면 Spring tools 최신 4버전 부터 아래로 버전별로 리스트 되어 있고 사용하려는 버전을 선택 하면 됩니다.


spring boot download install


최신 버전은 4이지만 3버전의 마지막 배포본을 다운 받았습니다.

설치는 압축을 풀기만 하면 되기 때문에 가능하면 사용하려는 위치로 압축파일을 이동해서 풀어줍니다. 압축을 풀어줄 때 알집이 아닌 7zip을 이용하길 권장합니다.


spring boot download install


알집으로 압축을 풀면 저만 그런가 오류가 발생해서 실행은 되지만 찜찜한 기분이 들어 7zip을 이용 합니다.


spring boot download install


압축이 풀리면 3개의 폴더가 생기는데 이중 sts라고 되어 있는 폴더에 들어가 보면 


spring boot download install


사용하려는 STS를 볼 수 있습니다.

STS.exe를 실행 합니다.


spring boot download install


java를 설치하지 않았다면 JDK를 찾을 수 없다는 안내 창이 나타나고 기존에 java가 설치 되어 있다면 


spring boot download install


다음과 같은 창이 나오고 작업 폴더를 선택하고 Launch 버튼을 클릭 합니다.


spring boot download install


Spring boot 설치가 완료 되었습니다. 이제부터 좋은 프로그램을 만들기만 하면 됩니다.


- copy coding -


간단하게 테스트 해야 할 일이 생겨서 통합버전으로 나온 STS를 이용하기로 하고 설치를 진행해 보았습니다요즘 프로그램은 설치가 간단하게 나오는데 Spring boot도 설치는 매우 간단 합니다.

테스트는 Spring Initializr에서 다운받은 것으로 한번, Spring boot에서 생성한 것으로 한번 진행 합니다.

 

 

1. JAVA 설치

 

Spring Toolsjava가 설치되어 있어야 합니다.  Java를 설치하고 환경 변수 설정을 합니다설치 위치에 따라 폴더는 변경하면 됩니다.

 

JAVA_HOME

"F:\project\Java\jdk1.8.0_131"


Spring Tools Spring Boot


그리고 Path%JAVA_HOME%\bin 을 추가해 주면 됩니다.


Java 설치에 대한 자세한 설명은 아래 링크 참조.


Java 설치 및 환경 설정


 

2. Spring Tools 설치

 

Spring Tools에 접속하여 Spring boot를 다운로드 받습니다.


https://spring.io/tools


Spring Tools Spring Boot


각자 사용하는 운영체제에 적합한 항목을 클릭하여 다운로드를 진행 합니다여기서는 windows용을 다운 받았습니다.

 

spring-tool-suite-4-4.2.1.RELEASE-e4.11.0-win32.win32.x86_64.zip

 

다운받은 파일을 적당한 곳에 놓고 압축을 풀어 줍니다. 압축을 풀고 사용하려는 곳으로 파일을 이동 합니다저는 C:\project\ 로 이동을 하였습니다.  


Spring Tools Spring Boot


SpringToolSuite4.exe를 실행해서 창이 뜨면 설치에 성공을 한 것 입니다설치가 완료 되었습니다.

 

 

3. Generate Project 테스트

 

압축을 풀어주는 것 만으로 설치가 완료 되었는데 작동이 잘 되는지 사이트에서 데모 프로젝트를 하나 다운 받아 실행해 보도록 합니다.

 

https://start.spring.io

 

별 의미 없지만 사이트에 접속하여 Spring Initializr에서 Artifactdemo에서 copycoding으로 변경해 보았습니다.


Spring Tools Spring Boot


Maven Project Java가 선택되어 있습니다각자 작업 환경에 맞게 선택을 하고 하단에 있는 Generate Project 버튼을 클릭하면 선택한 조건으로 copycoding이라는 압축된 프로젝트를 다운 받을 수 있습니다다운받은 copycoding.zip 파일은 임의의 폴더에 압축을 풀어 줍니다.

 

이제 SpringToolSuite4를 실행 합니다


Spring Tools Spring Boot


작업할 Workspace를 선택 해주고 Launch 버튼을 클릭 합니다.


Spring Tools Spring Boot


처음에는 프로젝트가 추가되지 않은 상태 이므로 추가를 해주어야 합니다File > import를 선택합니다.


Spring Tools Spring Boot


Import 팝업 창에서 Maven을 찾아 봅니다.


Spring Tools Spring Boot


Maven을 확장하고 Existing Maven Projects를 선택 해서 Maven Projects 창을 오픈 합니다.


Spring Tools Spring Boot


Browse 버튼을 이용하여 추가할 copycoding 프로젝트를 선택합니다. Finish 버튼을 클릭 합니다.


Spring Tools Spring Boot


먼저 Maven install을 해주어야 합니다프로젝트에 마우스를 대고 우측 버튼을 클릭하고 팝업 메뉴에서 하단으로 내려가 Run As를 찾습니다.


Spring Tools Spring Boot


그리고 Run As > Maven install을 선택 합니다열심히 필요한 파일들을 다운로드 받습니다.


Spring Tools Spring Boot


ConsoleBUILD SUCCESS가 보이면 잘 설치가 되었고 프로그램을 실행해 봅니다먼저 CopyCodingApplication.java 파일을 열고 System.out.println("Hello Hello"); 한 줄을 추가해 줍니다.


         public static void main(String[] args) {

               SpringApplication.run(CopycodingApplication.class, args);

               System.out.println("Hello Hello");

        }



CopyCodingApplication.java 파일에 마우스를 대고 우측 버튼을 클릭 합니다.


Spring Tools Spring Boot


길어서 좀 잘라보았습니다. 아래쪽으로 내려가면 Run As가 있습니다.


Spring Tools Spring Boot


Run As 에서 Apring Boot App을 선택 하면 콘솔에 로그가 나타나며


Spring Tools Spring Boot


Hello Hello가 보인다면 이상 없이 잘 설치가 된것 입니다.

 

 

4. Spring Tool에서 프로젝트 생성

 

이제는 STS에서 프로젝트를 생성해서 테스트를 해보도록 합니다프로젝트를 생성하려면 상단 메뉴에서

 

File > New > Spring Starter Project


를 선택 합니다.


Spring Tools Spring Boot


그러면 프로젝트 생성 팝업이 나오고


Spring Tools Spring Boot


이번에도 별 의미 없이 Namedemo에서 Test로 변경해 보았습니다Next 버튼을 클릭 합니다.


Spring Tools Spring Boot


하단으로 내려가 좌측의 Web을 선택해 주고 Finish 버튼을 클릭해 줍니다.


Spring Tools Spring Boot


설정 값들이 보이는 군요.  Finish 버튼을 클릭해서 프로젝트를 생성 합니다.


프로젝트에 Controller 파일을 하나 생성합니다.  com.example.test에 마우스를 대고 우측 버튼 클릭하여 New > Class 를 선택 합니다.


Spring Tools Spring Boot


Java Class 창에서


Spring Tools Spring Boot


TestController 라고 적고 Finish 버튼을 클릭 하면 java 파일이 생성 됩니다파일을 확장하고


Spring Tools Spring Boot


다음처럼 입력을 하고 저장을 합니다.


 

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

 

@RestController

public class TestController {

 

        @RequestMapping("/")

        public String hello() {

               return "Hello, Spring Boot!";

        }

}


잘 코딩 했는지 실행을 하기 위해 프로젝트명에 마우스를 대고 우측클릭을 하고 이번에도 길어서 좀 잘랐습니다.


Spring Tools Spring Boot


하단으로 내려가 Run As를 찾아 봅니다.


Spring Tools Spring Boot


Run As 에서 Spring Boot App으로 실행을 합니다.


Spring Tools Spring Boot


아무런 오류가 나오지 않았다면 웹 브라우저를 하나 오픈하고 localhost:8080을 입력 하면 내장된 웹서버를 이용하여 Hello, Spring Boot! 가 나타납니다.


Spring Tools Spring Boot


이것도 성공이니 아주 잘 설치가 되었습니다.

'Java' 카테고리의 다른 글

ubuntu oracle java 수동 설치  (6) 2019.06.08
axboot framework 설치  (2) 2019.05.29
maven 이용 spring MVC project 생성  (10) 2019.05.03
maven 설치 및 eclipse 연동  (17) 2019.04.30
Eclipse Apache spring (plug-in) 설치  (0) 2019.04.15

1

+ Recent posts