JAVA

eGovFramework 3.8 버전에서 JBoss 환경 설정하기

wooyit 2023. 7. 13. 13:21

안녕하세요, 오늘은 eGovFramework 3.8 버전에 JBoss 환경을 설정하는 방법을 알아보겠습니다. 

 

eGovFramework는 한국 정보화진흥원에서 배포하는 공공기관 전자정부 표준프레임워크입니다. 

 

이 글은 이 프레임워크를 JBoss 서버에서 실행하는 방법에 대해 설명합니다.

 

1. 먼저, eGovFrame 웹사이트에서 3.8 버전을 다운받아 Eclipse를 실행합니다.

 

2. Eclipse Marketplace에서 "JBoss Tools 4.5.3 Final"을 설치합니다. 

이 도구는 JBoss 서버와 웹 애플리케이션을 개발하고 디버깅하는 데 도움을 줍니다.

이 때, Web Development과 JBoss AS, WildFly & EAP Server Tools만 선택하면 간단히 설치할 수 있습니다.

 

3. 설치가 완료된 후, 프로젝트를 우클릭하고 Run AS > Run on Server를 선택해 JBoss 서버에 프로젝트를 배포합니다.

 

4. src / main / webapp / WEB-INF 아래에 jboss-web.xml 파일을 생성합니다. 

 

이 파일은 JBoss 서버가 웹 애플리케이션을 어떻게 배포해야 하는지 지시합니다.

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
    <context-root>/</context-root>
</jboss-web>

 

5. pom.xml을 수정해 프로젝트에 필요한 의존성을 선언합니다. 

 

기본적으로 eGovFramework는 Spring Modules Validation이 포함되어 있지만, 이는 JBoss와 호환성 문제가 있으므로 제외하고 직접 추가합니다.

<!--
		JBoss의 경우는 <body-context>부분을 empty로 수정하여 적용하시면 되며,
		pom.xml을 아래와 같이 적용하시면 수정된 jar를 참조하실 수 있습니다.
		(기존 egovframework.rte.ptl.mvc dependency에 내부적으로 참조되고 있어,
		해당 부분을 exclude 처리해야 함)
		아래 주석을 해제하시면 됩니다.
		-->
		<dependency>
			<groupId>egovframework.rte</groupId>
			<artifactId>egovframework.rte.ptl.mvc</artifactId>
			<version>${egovframework.rte.version}</version>
			<!-- 
			-->
			<exclusions>
				<exclusion>
					<groupId>org.springmodules</groupId>
					<artifactId>spring-modules-validation</artifactId>
				</exclusion>
			</exclusions> 
		</dependency>
		<!-- 
		-->
		<dependency>
			<groupId>egovframework.rte</groupId>
			<artifactId>spring-modules-validation</artifactId>
			<version>0.9</version>
		</dependency>

6. context-common.xml을 수정합니다. 

 

기본적으로 제공되는 국제화 설정이 JBoss에서는 호환되지 않을 수 있기 때문에 이를 수정해야 합니다.

	<!-- 국제화 Message 설정 -->
	<bean id="messageSource" class="egovframework.com.cmm.util.EgovWildcardReloadableResourceBundleMessageSource">
		<property name="egovBasenames">
			<list>
				<value>classpath*:egovframework/message/com/**/*</value>
				<value>classpath:/egovframework/rte/fdl/idgnr/messages/idgnr</value>
				<value>classpath:/egovframework/rte/fdl/property/messages/properties</value>
				<value>classpath:/egovframework/egovProps/globals</value>
				
				 <value>classpath:/egovframework/message/com/message-common</value>
				 <value>classpath:/egovframework/message/com/cmm/message-common</value>
				 <value>classpath:/egovframework/message/com/cmm/err/message-common</value>
				 <value>classpath:/egovframework/message/com/cop/message</value>
				 <value>classpath:/egovframework/message/com/cop/adb/message</value>
				 <value>classpath:/egovframework/message/com/cop/bbs/message</value>
				 <value>classpath:/egovframework/message/com/cop/blog/message</value>
				 <value>classpath:/egovframework/message/com/cop/cmt/message</value>
				 <value>classpath:/egovframework/message/com/cop/cmy/message</value>
				 <value>classpath:/egovframework/message/com/cop/com/message</value>
				 <value>classpath:/egovframework/message/com/cop/ncm/message</value>
				 <value>classpath:/egovframework/message/com/cop/scp/message</value>
				 <value>classpath:/egovframework/message/com/cop/sms/message</value>
				 <value>classpath:/egovframework/message/com/cop/smt/message</value>
				 <value>classpath:/egovframework/message/com/cop/smt/djm/message</value>
				 <value>classpath:/egovframework/message/com/cop/smt/dsm/message</value>
				 <value>classpath:/egovframework/message/com/cop/smt/lsm/message</value>
				 <value>classpath:/egovframework/message/com/cop/smt/mrm/message</value>
				 <value>classpath:/egovframework/message/com/cop/smt/mtm/message</value>
				 <value>classpath:/egovframework/message/com/cop/smt/sam/message</value>
				 <value>classpath:/egovframework/message/com/cop/smt/sdm/message</value>
				 <value>classpath:/egovframework/message/com/cop/smt/sim/message</value>
				 <value>classpath:/egovframework/message/com/cop/smt/wmr/message</value>
				 <value>classpath:/egovframework/message/com/cop/stf/message</value>
				 <value>classpath:/egovframework/message/com/cop/sym/message</value>
				 <value>classpath:/egovframework/message/com/cop/sym/ems/message</value>
				 <value>classpath:/egovframework/message/com/cop/tpl/message</value>
				 <value>classpath:/egovframework/message/com/dam/message</value>
				 <value>classpath:/egovframework/message/com/dam/app/message</value>
				 <value>classpath:/egovframework/message/com/dam/map/message</value>
				 <value>classpath:/egovframework/message/com/dam/map/mat/message</value>
				 <value>classpath:/egovframework/message/com/dam/map/tea/message</value>
				 <value>classpath:/egovframework/message/com/dam/mgm/message</value>
				 <value>classpath:/egovframework/message/com/dam/per/message</value>
				 <value>classpath:/egovframework/message/com/dam/spe/message</value>
				 <value>classpath:/egovframework/message/com/dam/spe/req/message</value>
				 <value>classpath:/egovframework/message/com/dam/spe/spe/message</value>
				 <value>classpath:/egovframework/message/com/ext/message</value>
				 <value>classpath:/egovframework/message/com/ext/ldapumt/message</value>
				 <value>classpath:/egovframework/message/com/ext/ldapumt/dpt/message</value>
				 <value>classpath:/egovframework/message/com/ext/msg/message</value>
				 <value>classpath:/egovframework/message/com/sec/message</value>
				 <value>classpath:/egovframework/message/com/sec/drm/message</value>
				 <value>classpath:/egovframework/message/com/sec/gmt/message</value>
				 <value>classpath:/egovframework/message/com/sec/pki/message</value>
				 <value>classpath:/egovframework/message/com/sec/ram/message</value>
				 <value>classpath:/egovframework/message/com/sec/rgm/message</value>
				 <value>classpath:/egovframework/message/com/sec/rmt/message</value>
				 <value>classpath:/egovframework/message/com/ssi/message</value>
				 <value>classpath:/egovframework/message/com/ssi/syi/message</value>
				 <value>classpath:/egovframework/message/com/ssi/syi/iis/message</value>
				 <value>classpath:/egovframework/message/com/ssi/syi/ims/message</value>
				 <value>classpath:/egovframework/message/com/ssi/syi/ist/message</value>
				 <value>classpath:/egovframework/message/com/ssi/syi/sim/message</value>
				 <value>classpath:/egovframework/message/com/sts/message</value>
				 <value>classpath:/egovframework/message/com/sts/bst/message</value>
				 <value>classpath:/egovframework/message/com/sts/cst/message</value>
				 <value>classpath:/egovframework/message/com/sts/dst/message</value>
				 <value>classpath:/egovframework/message/com/sts/rst/message</value>
				 <value>classpath:/egovframework/message/com/sts/sst/message</value>
				 <value>classpath:/egovframework/message/com/sts/ust/message</value>
				 <value>classpath:/egovframework/message/com/sym/message</value>
				 <value>classpath:/egovframework/message/com/sym/adr/message</value>
				 <value>classpath:/egovframework/message/com/sym/bat/message</value>
				 <value>classpath:/egovframework/message/com/sym/cal/message</value>
				 <value>classpath:/egovframework/message/com/sym/ccm/message</value>
				 <value>classpath:/egovframework/message/com/sym/ccm/adc/message</value>
				 <value>classpath:/egovframework/message/com/sym/ccm/cca/message</value>
				 <value>classpath:/egovframework/message/com/sym/ccm/ccc/message</value>
				 <value>classpath:/egovframework/message/com/sym/ccm/cde/message</value>
				 <value>classpath:/egovframework/message/com/sym/ccm/icr/message</value>
				 <value>classpath:/egovframework/message/com/sym/ccm/zip/message</value>
				 <value>classpath:/egovframework/message/com/sym/log/message</value>
				 <value>classpath:/egovframework/message/com/sym/log/clg/message</value>
				 <value>classpath:/egovframework/message/com/sym/log/lgm/message</value>
				 <value>classpath:/egovframework/message/com/sym/log/plg/message</value>
				 <value>classpath:/egovframework/message/com/sym/log/slg/message</value>
				 <value>classpath:/egovframework/message/com/sym/log/tlg/message</value>
				 <value>classpath:/egovframework/message/com/sym/log/ulg/message</value>
				 <value>classpath:/egovframework/message/com/sym/log/wlg/message</value>
				 <value>classpath:/egovframework/message/com/sym/mnu/message</value>
				 <value>classpath:/egovframework/message/com/sym/mnu/bmm/message</value>
				 <value>classpath:/egovframework/message/com/sym/mnu/mcm/message</value>
				 <value>classpath:/egovframework/message/com/sym/mnu/mpm/message</value>
				 <value>classpath:/egovframework/message/com/sym/mnu/stm/message</value>
				 <value>classpath:/egovframework/message/com/sym/prm/message</value>
				 <value>classpath:/egovframework/message/com/sym/sym/message</value>
				 <value>classpath:/egovframework/message/com/sym/sym/bak/message</value>
				 <value>classpath:/egovframework/message/com/sym/sym/nwk/message</value>
				 <value>classpath:/egovframework/message/com/sym/sym/srv/message</value>
				 <value>classpath:/egovframework/message/com/sym/tbm/message</value>
				 <value>classpath:/egovframework/message/com/sym/tbm/tbp/message</value>
				 <value>classpath:/egovframework/message/com/sym/tbm/tbr/message</value>
				 <value>classpath:/egovframework/message/com/uat/message</value>
				 <value>classpath:/egovframework/message/com/uat/uap/message</value>
				 <value>classpath:/egovframework/message/com/uat/uia/message</value>
				 <value>classpath:/egovframework/message/com/uss/message</value>
				 <value>classpath:/egovframework/message/com/uss/cmt/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/ans/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/bnr/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/bnt/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/ctn/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/ecc/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/evt/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/fbk/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/isg/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/ism/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/lsi/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/msi/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/mtg/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/noi/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/ntm/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/ntr/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/nts/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/nws/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/pwm/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/rec/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/rmm/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/rsm/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/rsn/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/rss/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/rwd/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/sit/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/tir/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/uas/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/ulm/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/vct/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/wik/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/wik/bmk/message</value>
				 <value>classpath:/egovframework/message/com/uss/ion/yrc/message</value>
				 <value>classpath:/egovframework/message/com/uss/mpe/message</value>
				 <value>classpath:/egovframework/message/com/uss/olh/message</value>
				 <value>classpath:/egovframework/message/com/uss/olh/awm/message</value>
				 <value>classpath:/egovframework/message/com/uss/olh/faq/message</value>
				 <value>classpath:/egovframework/message/com/uss/olh/hpc/message</value>
				 <value>classpath:/egovframework/message/com/uss/olh/omm/message</value>
				 <value>classpath:/egovframework/message/com/uss/olh/qna/message</value>
				 <value>classpath:/egovframework/message/com/uss/olh/wor/message</value>
				 <value>classpath:/egovframework/message/com/uss/olp/message</value>
				 <value>classpath:/egovframework/message/com/uss/olp/cns/message</value>
				 <value>classpath:/egovframework/message/com/uss/olp/mgt/message</value>
				 <value>classpath:/egovframework/message/com/uss/olp/opm/message</value>
				 <value>classpath:/egovframework/message/com/uss/olp/opp/message</value>
				 <value>classpath:/egovframework/message/com/uss/olp/qim/message</value>
				 <value>classpath:/egovframework/message/com/uss/olp/qmc/message</value>
				 <value>classpath:/egovframework/message/com/uss/olp/qnn/message</value>
				 <value>classpath:/egovframework/message/com/uss/olp/qqm/message</value>
				 <value>classpath:/egovframework/message/com/uss/olp/qri/message</value>
				 <value>classpath:/egovframework/message/com/uss/olp/qrm/message</value>
				 <value>classpath:/egovframework/message/com/uss/olp/qtm/message</value>
				 <value>classpath:/egovframework/message/com/uss/sam/message</value>
				 <value>classpath:/egovframework/message/com/uss/sam/cpy/message</value>
				 <value>classpath:/egovframework/message/com/uss/sam/ipm/message</value>
				 <value>classpath:/egovframework/message/com/uss/sam/stp/message</value>
				 <value>classpath:/egovframework/message/com/uss/umt/message</value>
				 <value>classpath:/egovframework/message/com/utl/message</value>
				 <value>classpath:/egovframework/message/com/utl/sys/message</value>
				 <value>classpath:/egovframework/message/com/utl/sys/dbm/message</value>
				 <value>classpath:/egovframework/message/com/utl/sys/fsm/message</value>
				 <value>classpath:/egovframework/message/com/utl/sys/htm/message</value>
				 <value>classpath:/egovframework/message/com/utl/sys/nsm/message</value>
				 <value>classpath:/egovframework/message/com/utl/sys/prm/message</value>
				 <value>classpath:/egovframework/message/com/utl/sys/pxy/message</value>
				 <value>classpath:/egovframework/message/com/utl/sys/rsc/message</value>
				 <value>classpath:/egovframework/message/com/utl/sys/srm/message</value>
				 <value>classpath:/egovframework/message/com/utl/sys/ssy/message</value>
				 <value>classpath:/egovframework/message/com/utl/sys/trm/message</value>
				
			</list>
		</property>
		 
		<property name="cacheSeconds">
			<value>60</value>
		</property>
	</bean>


마지막으로 Maven으로 빌드를 하고 서버를 시작하면, 설정이 모두 완료됩니다.

 

결론
eGovFramework는 많은 공공기관에서 사용하는 표준 프레임워크입니다. 그럼에도 불구하고, JBoss와 같은 애플리케이션 서버에서는 추가적인 설정이 필요합니다. 

 

이런 설정을 통해 eGovFramework를 더 유연하게 활용할 수 있게 되며, 이를 통해 다양한 환경에서 원활하게 개발할 수 있게 됩니다.