포스팅큐레이션, 자바이야기 006. 최초의 전자정부 프로젝트 만들기
안녕하세요. 가야태자 @talkit 입니다.
이클립스가 실행된 화면까지 보셨나요?
저는 봤습니다. ^^
일단 개발 환경이 다 만들어졌으니, 공유하기 전에 압축해 둡니다.
그럼 다시
C:\SteemDev\bin\eclipse\eclipse.exe
를 실행 하십시오.
신규 프로젝트 생성
File >> New >> Other
을 선택 하십시오.
eGoveFrame >> eGovFreame Web Project
를 선택하고 Next를 클릭하십시오.
Project name : talkitsteem - 원하는 프로젝트명을 붙여서 영어로 만드시면됨
Group Id : kr.whd - 회사 도메인 또는 개인 도메인의 역순을 적으면 됨
Artifact Id : talkitsteem - 프로젝트명이 자동으로 들어 옴
잘따라 하셨으면 위와 같이 됬을 겁니다.
Next를 클릭하십시오.
Generate Example에 클릭을 합니다.
Finish 버튼을 클릭 합니다.
맨 마지막에 eGovFrame 환경을 열겠냐고 물어보면 Open Perspective를 클릭 합니다.
혹시 Welcom 화면이 그대로 있으면 닫으십시오.^^
저기 빨간색 아이콘을 클릭 합니다.
위화면과 비슷하게 되어 있을 겁니다.
여기까지하면 일단 예제 전자정부 프레임워크 까지는 구성 했습니다.
Tomcat에 올려서 실행해보자.
톰켓을 이클립스와 연동하려면 저기있는 Servers 라는 탭이 필요 합니다.
이걸 클릭하기 전에 끌어서 왼쪽 네비게이션 창에 살짝 놓고, 아래와 같이 되도록 하십시오.
위와 같이 되도록 합니다.
그러면 저기에 서버를 추가 해보겠습니다.
저기 보이는 파란색 링크를 클릭하거나, 오른쪽 마우스 누르고 New >> Servers를 선택해도 됩니다.
저희는 Apache 계열의 Tomcat 8.5 계열을 사용할 계획이어서
Apache >> Tomcat 8.5 Server 를 선택하고 Next 누르십시오.
저기 비어 있는 칸 옆에 Browse 보이시죠 ^^
저걸 클릭 합니다.
C:\SteemDev\bin\apache-tomcat-8.5.99
저희가 셋팅 했던 톰캣은 저기 있습니다. 저걸 붙여 넣으셔도 됩니다.
Next를 클릭합니다.
그러면 방금 만들었던 프로젝트가 보일 겁니다.
이렇게 보일 겁니다.
저기서 왼쪽에 있는 프로젝트 선택하시고, Add버튼을 클릭하시고,
Finish 버튼을 클릭 합니다.
위와 같이 변했을 겁니다.
저기 서버에서 오른쪽 마우스 누르시고, Start를 선택합니다. 또는 초록색 플레이 버튼 보이시나요 저걸 클릭 하셔도 됩니다. ^^
저는 8080 포트를 사용하고 있는지 8080 포트가 사용되고 있어서 실행이 안된다고 나오네요 ^^
당화하지 마시고, 어차피 나중에 8090으로 변경하려고 했으니까 ^^
변경해보겠습니다.
Tomcat v8.5 Server at localhost
서버탭에서 위 서버를 더블 클릭하십시오.
저기를 클릭하셔서 8009, 8090으로 변경하시고, Ctrl + S를 키보드에서 누르십시오.
전 는 저장 했습니다.
다시 실행 해보겠습니다.
이때 윈도우즈 보안은 허용해주셔야 사용이 가능 합니다. ^^
2월 05, 2025 4:19:06 오후 org.apache.catalina.startup.VersionLoggerListener log
정보: 서버 버전 이름: Apache Tomcat/8.5.99
2월 05, 2025 4:19:06 오후 org.apache.catalina.startup.VersionLoggerListener log
정보: Server 빌드 시각: Feb 14 2024 22:52:13 UTC
2월 05, 2025 4:19:06 오후 org.apache.catalina.startup.VersionLoggerListener log
정보: Server 버전 번호: 8.5.99.0
2월 05, 2025 4:19:06 오후 org.apache.catalina.startup.VersionLoggerListener log
정보: 운영체제 이름: Windows 11
2월 05, 2025 4:19:06 오후 org.apache.catalina.startup.VersionLoggerListener log
정보: 운영체제 버전: 10.0
2월 05, 2025 4:19:06 오후 org.apache.catalina.startup.VersionLoggerListener log
정보: 아키텍처: amd64
2월 05, 2025 4:19:06 오후 org.apache.catalina.startup.VersionLoggerListener log
정보: 자바 홈: C:\AccountBookDev\bin\jdk8u442-b06\jre
2월 05, 2025 4:19:06 오후 org.apache.catalina.startup.VersionLoggerListener log
정보: JVM 버전: 1.8.0_442-b06
2월 05, 2025 4:19:06 오후 org.apache.catalina.startup.VersionLoggerListener log
정보: JVM 벤더: Temurin
2월 05, 2025 4:19:06 오후 org.apache.catalina.startup.VersionLoggerListener log
정보: CATALINA_BASE: C:\SteemDev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
2월 05, 2025 4:19:06 오후 org.apache.catalina.startup.VersionLoggerListener log
정보: CATALINA_HOME: C:\SteemDev\bin\apache-tomcat-8.5.99
2월 05, 2025 4:19:06 오후 org.apache.catalina.startup.VersionLoggerListener log
정보: 명령 행 아규먼트: -Dcatalina.base=C:\SteemDev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
2월 05, 2025 4:19:06 오후 org.apache.catalina.startup.VersionLoggerListener log
정보: 명령 행 아규먼트: -Dcatalina.home=C:\SteemDev\bin\apache-tomcat-8.5.99
2월 05, 2025 4:19:06 오후 org.apache.catalina.startup.VersionLoggerListener log
정보: 명령 행 아규먼트: -Dwtp.deploy=C:\SteemDev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
2월 05, 2025 4:19:06 오후 org.apache.catalina.startup.VersionLoggerListener log
정보: 명령 행 아규먼트: -Djava.endorsed.dirs=C:\SteemDev\bin\apache-tomcat-8.5.99\endorsed
2월 05, 2025 4:19:06 오후 org.apache.catalina.startup.VersionLoggerListener log
정보: 명령 행 아규먼트: -Dfile.encoding=UTF-8
2월 05, 2025 4:19:06 오후 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
정보: 프로덕션 환경들에서 최적의 성능을 제공하는, APR 기반 Apache Tomcat Native 라이브러리가, 다음 java.library.path에서 발견되지 않습니다: [C:\AccountBookDev\bin\jdk8u442-b06\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Python312\Scripts\;C:\Python312\;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.3\libnvvp;C:\Program Files (x86)\VMware\VMware Player\bin\;C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64\compiler;C:\Program Files\Microsoft MPI\Bin\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\dev\OpenSSL\bin;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Program Files\dotnet\;C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\150\DTS\Binn\;C:\Program Files\Azure Data Studio\bin;C:\Program Files\MATLAB\MATLAB Runtime\v97\runtime\win64;C:\Program Files\PuTTY\;C:\dev\gradle-7.6-bin\gradle-7.6\bin;C:\Program Files (x86)\NetSarang\Xshell 7\;C:\Program Files\NVIDIA Corporation\Nsight Compute 2023.3.1\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Brackets\command;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\nodejs\;C:\ProgramData\chocolatey\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Git\cmd;C:\dev\Ruby26-x64\bin;C:\Users\kjh0523\AppData\Local\Microsoft\WindowsApps;C:\dev\jdk-1.8.0.282-1.b08\bin;C:\Users\kjh0523\AppData\Local\Programs\Microsoft VS Code\bin;C:\Program Files\nodejs;C:\Program Files\Bandizip\;C:\dev\flutter\bin;C:\Users\kjh0523\.dotnet\tools;C:\Program Files\Azure Data Studio\bin;C:\Users\kjh0523\AppData\Roaming\npm;C:\Users\kjh0523\AppData\Local\Muse Hub\lib;C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64;;C:\Users\kjh0523\AppData\Local\Programs\Ollama;.]
2월 05, 2025 4:19:06 오후 org.apache.coyote.AbstractProtocol init
정보: 프로토콜 핸들러 ["http-nio-8090"]을(를) 초기화합니다.
2월 05, 2025 4:19:06 오후 org.apache.catalina.startup.Catalina load
정보: Initialization processed in 375 ms
2월 05, 2025 4:19:06 오후 org.apache.catalina.core.StandardService startInternal
정보: 서비스 [Catalina]을(를) 시작합니다.
2월 05, 2025 4:19:06 오후 org.apache.catalina.core.StandardEngine startInternal
정보: 서버 엔진을 시작합니다: [Apache Tomcat/8.5.99]
2월 05, 2025 4:19:08 오후 org.apache.catalina.util.SessionIdGeneratorBase createSecureRandom
경고: [SHA1PRNG] 알고리즘을 사용하여, 세션 ID를 생성하기 위한 SecureRandom 객체를 생성하는데, [1,384] 밀리초가 소요됐습니다.
2월 05, 2025 4:19:10 오후 org.apache.jasper.servlet.TldScanner scanJars
정보: 적어도 하나의 JAR가 TLD들을 찾기 위해 스캔되었으나 아무 것도 찾지 못했습니다. 스캔했으나 TLD가 없는 JAR들의 전체 목록을 보시려면, 로그 레벨을 디버그 레벨로 설정하십시오. 스캔 과정에서 불필요한 JAR들을 건너뛰면, 시스템 시작 시간과 JSP 컴파일 시간을 단축시킬 수 있습니다.
2월 05, 2025 4:19:10 오후 org.apache.catalina.core.ApplicationContext log
정보: No Spring WebApplicationInitializer types detected on classpath
2월 05, 2025 4:19:12 오후 org.apache.catalina.core.ApplicationContext log
정보: Initializing Spring root WebApplicationContext
2025-02-05 16:19:12,279 INFO [org.springframework.web.context.ContextLoader] Root WebApplicationContext: initialization started
2025-02-05 16:19:12,396 INFO [org.springframework.web.context.support.XmlWebApplicationContext] Refreshing Root WebApplicationContext: startup date [Wed Feb 05 16:19:12 KST 2025]; root of context hierarchy
2025-02-05 16:19:12,524 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loading XML bean definitions from file [C:\SteemDev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\talkitsteem\WEB-INF\classes\egovframework\spring\context-aspect.xml]
2025-02-05 16:19:12,647 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loading XML bean definitions from file [C:\SteemDev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\talkitsteem\WEB-INF\classes\egovframework\spring\context-common.xml]
2025-02-05 16:19:12,851 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loading XML bean definitions from file [C:\SteemDev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\talkitsteem\WEB-INF\classes\egovframework\spring\context-datasource.xml]
2025-02-05 16:19:12,877 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loading XML bean definitions from file [C:\SteemDev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\talkitsteem\WEB-INF\classes\egovframework\spring\context-idgen.xml]
2025-02-05 16:19:12,882 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loading XML bean definitions from file [C:\SteemDev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\talkitsteem\WEB-INF\classes\egovframework\spring\context-mapper.xml]
2025-02-05 16:19:12,890 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loading XML bean definitions from file [C:\SteemDev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\talkitsteem\WEB-INF\classes\egovframework\spring\context-properties.xml]
2025-02-05 16:19:12,895 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loading XML bean definitions from file [C:\SteemDev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\talkitsteem\WEB-INF\classes\egovframework\spring\context-sqlMap.xml]
2025-02-05 16:19:12,901 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loading XML bean definitions from file [C:\SteemDev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\talkitsteem\WEB-INF\classes\egovframework\spring\context-transaction.xml]
2025-02-05 16:19:12,934 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loading XML bean definitions from file [C:\SteemDev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\talkitsteem\WEB-INF\classes\egovframework\spring\context-validator.xml]
2025-02-05 16:19:13,224 INFO [org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor] JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
2025-02-05 16:19:13,707 DEBUG [egovframework.rte.fdl.cmmn.aspect.ExceptionTransfer] count of ExceptionHandlerServices = 2
2025-02-05 16:19:13,832 INFO [org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseFactory] Starting embedded database: url='jdbc:hsqldb:mem:dataSource', username='sa'
2025-02-05 16:19:14,194 INFO [org.springframework.jdbc.datasource.init.ScriptUtils] Executing SQL script from class path resource [db/sampledb.sql]
2025-02-05 16:19:14,208 INFO [org.springframework.jdbc.datasource.init.ScriptUtils] Executed SQL script from class path resource [db/sampledb.sql] in 14 ms.
2025-02-05 16:19:14,940 DEBUG [egovframework.rte.fdl.property.impl.EgovPropertyServiceImpl] [Properties Service] 프로퍼티 key = pageUnit, 값 = 10 은 이 설정파일에 정의되어 있습니다.
2025-02-05 16:19:14,940 DEBUG [egovframework.rte.fdl.property.impl.EgovPropertyServiceImpl] [Properties Service] 프로퍼티 key = pageSize, 값 = 10 은 이 설정파일에 정의되어 있습니다.
2025-02-05 16:19:14,958 INFO [org.springmodules.validation.commons.DefaultValidatorFactory] Loading validation configurations from [ServletContext resource [/WEB-INF/config/egovframework/validator/validator-rules.xml],ServletContext resource [/WEB-INF/config/egovframework/validator/validator.xml]]
2025-02-05 16:19:15,178 INFO [org.springframework.web.context.ContextLoader] Root WebApplicationContext: initialization completed in 2886 ms
2월 05, 2025 4:19:15 오후 org.apache.catalina.core.ApplicationContext log
정보: Initializing Spring FrameworkServlet 'action'
2025-02-05 16:19:15,220 INFO [org.springframework.web.servlet.DispatcherServlet] FrameworkServlet 'action': initialization started
2025-02-05 16:19:15,223 INFO [org.springframework.web.context.support.XmlWebApplicationContext] Refreshing WebApplicationContext for namespace 'action-servlet': startup date [Wed Feb 05 16:19:15 KST 2025]; parent: Root WebApplicationContext
2025-02-05 16:19:15,223 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] Loading XML bean definitions from ServletContext resource [/WEB-INF/config/egovframework/springmvc/dispatcher-servlet.xml]
2025-02-05 16:19:15,341 INFO [org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor] JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
2025-02-05 16:19:15,484 INFO [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter] Looking for @ControllerAdvice: WebApplicationContext for namespace 'action-servlet': startup date [Wed Feb 05 16:19:15 KST 2025]; parent: Root WebApplicationContext
2025-02-05 16:19:15,648 INFO [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] Mapped "{[/addSample.do],methods=[GET]}" onto public java.lang.String egovframework.example.sample.web.EgovSampleController.addSampleView(egovframework.example.sample.service.SampleDefaultVO,org.springframework.ui.Model) throws java.lang.Exception
2025-02-05 16:19:15,649 INFO [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] Mapped "{[/addSample.do],methods=[POST]}" onto public java.lang.String egovframework.example.sample.web.EgovSampleController.addSample(egovframework.example.sample.service.SampleDefaultVO,egovframework.example.sample.service.SampleVO,org.springframework.validation.BindingResult,org.springframework.ui.Model,org.springframework.web.bind.support.SessionStatus) throws java.lang.Exception
2025-02-05 16:19:15,649 INFO [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] Mapped "{[/updateSampleView.do]}" onto public java.lang.String egovframework.example.sample.web.EgovSampleController.updateSampleView(java.lang.String,egovframework.example.sample.service.SampleDefaultVO,org.springframework.ui.Model) throws java.lang.Exception
2025-02-05 16:19:15,650 INFO [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] Mapped "{[/updateSample.do]}" onto public java.lang.String egovframework.example.sample.web.EgovSampleController.updateSample(egovframework.example.sample.service.SampleDefaultVO,egovframework.example.sample.service.SampleVO,org.springframework.validation.BindingResult,org.springframework.ui.Model,org.springframework.web.bind.support.SessionStatus) throws java.lang.Exception
2025-02-05 16:19:15,650 INFO [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] Mapped "{[/deleteSample.do]}" onto public java.lang.String egovframework.example.sample.web.EgovSampleController.deleteSample(egovframework.example.sample.service.SampleVO,egovframework.example.sample.service.SampleDefaultVO,org.springframework.web.bind.support.SessionStatus) throws java.lang.Exception
2025-02-05 16:19:15,650 INFO [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] Mapped "{[/egovSampleList.do]}" onto public java.lang.String egovframework.example.sample.web.EgovSampleController.selectSampleList(egovframework.example.sample.service.SampleDefaultVO,org.springframework.ui.ModelMap) throws java.lang.Exception
2025-02-05 16:19:15,728 INFO [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping] Mapped URL path [/cmmn/validator.do] onto handler of type [class org.springframework.web.servlet.mvc.ParameterizableViewController]
2025-02-05 16:19:15,774 INFO [org.springframework.web.servlet.DispatcherServlet] FrameworkServlet 'action': initialization completed in 554 ms
2월 05, 2025 4:19:15 오후 org.apache.coyote.AbstractProtocol start
정보: 프로토콜 핸들러 ["http-nio-8090"]을(를) 시작합니다.
2월 05, 2025 4:19:15 오후 org.apache.catalina.startup.Catalina start
정보: Server startup in 9112 ms
최초로 Tomcat이 잘 실행 되었습니다.
자 이제 웹 사이트를 한번 보겠습니다.
http://127.0.0.1:8090/talkitsteem/
이제 웹사이트에 접속해보겠습니다.
저는 프로젝트명이 talkitsteem 이기 때문에 저렇게 했고, 여러분은 여러분의 프로젝트명을 넣으시면 됩니다.
다음에 여러가지 셋팅을 하면 http://127.0.0.1:8090/ 주소 만으로 호출이 가능하지만,
오늘은 여기까지 하겠습니다.
맺음말
위 그림이 보이면 성공 한 것입니다.
그런데, 데이터베이스도 없는데 어떻게 저게 동작하나 ^^
기본적으로 아무 설정이 없으면 전자정부 프레임워크 샘플은 Java의 내장 파일 DB를 사용합니다. ^^
앞으로 저는 저 데이터베이스를 MySQL로 변환하고, 스팀잇을 위해서 만들 앱들의 UI를 만들 계획입니다.
감사합니다.
#kr #kr-dev #postingcuration #development #develop #eversteem
Write Once, reward forever via EverSteem app
[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.
Upvoted! Thank you for supporting witness @jswit.