import{_ as l,r as c,o,c as u,a,d as s,e as t,f as e,b as p}from"./app-6440dfe3.js";const i="/BMSCTX/assets/Hostname-55c004e1.png",k="/BMSCTX/assets/IPAdress-4e280182.png",g="/BMSCTX/assets/viCmd-14b6f3b4.png",r="/BMSCTX/assets/portCmd-4a13ca58.png",d="/BMSCTX/assets/LicenseKey-46e54b0a.png",m="/BMSCTX/assets/metaDB_User-52931f2d.png",v="/BMSCTX/assets/metaDB_database-ffce144e.png",b="/BMSCTX/assets/metaDB_superuser-a609f592.png",_="/BMSCTX/assets/metaDB_password-ce4fd4bc.png",E="/BMSCTX/assets/metaDB_createDatabase-61ebcbbd.png",D="/BMSCTX/assets/metaDB_databaseList-2b7d1a00.png",S="/BMSCTX/assets/metaDB_databaseTool-86ce914a.png",T="/BMSCTX/assets/metaDB_databaseTable-4f74e41a.png",M="/BMSCTX/assets/metaDB_databaseSequence-611657fe.png",q="/BMSCTX/assets/metaDB_databaseData-a38bd90c.png",O="/BMSCTX/assets/dB_database-1fe258c2.png",C="/BMSCTX/assets/dB_mysql-dd0c595c.png",A="/BMSCTX/assets/dB_password-35ac8de3.png",h="/BMSCTX/assets/dB_newDatabase-6faf5f58.png",X="/BMSCTX/assets/dB_local-6caf55a6.png",x="/BMSCTX/assets/dB_privileges-83df7c7a.png",B="/BMSCTX/assets/dB_databaseList-51bc2b9c.png",R="/BMSCTX/assets/BMSCTX-759118bc.png",L="/BMSCTX/assets/license-e9d0cfe9.png",P="/BMSCTX/assets/PowerMDD-261183e0.png",N="/BMSCTX/assets/pmdd-02a33d2d.png",I="/BMSCTX/assets/processbuilder_config-704d173d.png",f="/BMSCTX/assets/ModelData-1a9fa97a.png",U="/BMSCTX/assets/DataModelInfo-94d6dff2.png",w="/BMSCTX/assets/temp-f80dc08f.png",y="/BMSCTX/assets/bms-dd452e53.png",W="/BMSCTX/assets/tlog-9fb6a155.png",G="/BMSCTX/assets/cmdMac-19fc4428.png",F="/BMSCTX/assets/web-a3e90b41.png",Y="/BMSCTX/assets/webApplication-0a83b18e.png",j="/BMSCTX/assets/webinf_Web-2ffe1b86.png",Q="/BMSCTX/assets/context-datasource-0413b6cd.png",V="/BMSCTX/assets/context-sqlMap-f68445ea.png",H="/BMSCTX/assets/context-transaction-50dd967c.png",K="/BMSCTX/assets/globals-cbb5fef0.png",J="/BMSCTX/assets/egov-com-servlet-37241751.png";const z={},$=s("h1",{id:"powermdd-bms-개발-server",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#powermdd-bms-개발-server","aria-hidden":"true"},"#"),e(" POWERMDD.BMS : 개발 Server")],-1),Z={class:"custom-container tip"},ss={class:"custom-container-title"},as=s("ul",null,[s("li",null,[s("p",null,[e("license.txt와 PowerMDD_1.1.jar 파일은 POWERMDD 개발 Server 설치시 필요한 파일이고 key 파일은 POWERMDD Client 설치 후 로그인하기 전에 필요한 파일입니다."),s("br")])]),s("li",null,[s("p",null,[s("span",{class:"spanEx"}," LicenseKey 디렉토리를 관리자에게 요청하기 전에 개발서버 Hostname, IP주소, WAS PORT 정보가 필요합니다. ")])])],-1),ns=p('

1. LicenseKey 디렉토리 : license.txt, PowerMDD_1.1.jar, key파일

1) Hostname
SSH 접속 Tool에 ‘hostname’ 을 입력하여 Hostname명을 확인합니다.

2) IP주소
SSH 접속 Tool에 ‘ping hostname명’ 입력하여 IP를 확인합니다.

3) WAS Port (Tomcat 사용)
WAS가 설치된 경로에 server.xml 파일을 열어서 Port을 확인할 수 있습니다.
① SSH 접속 Tool에 vi 명령어로 port번호를 확인할 수 있는 파일을 엽니다.

② 해당 파일을 열고 port번호를 확인합니다.

4) LicenseKey 디렉토리
관리자에게 가 – 다 의 정보를 보내면 License를 받을 수 있습니다.

2. Meta DB 파일

POWERMDD의 데이터베이스는 Meta DB, 업무 DB 2가지 종류가 있습니다.

1) Meta DB 세팅(PostgreSQL 사용)
POWERMDD 서버에 있는 모든 정보 체계를 저장하고 있는 데이터베이스입니다.
(1) User 계정 생성
① 계정 생성 전에 모든 권한이 설정된 계정으로 로그인합니다.

② Meta DB 세팅할 데이터베이스에 접속합니다.

③ Meta DB에 사용할 계정(democtl)을 생성하면서 권한도 같이 할당해줍니다.

',11),ts={class:"custom-container tip"},ps={class:"custom-container-title"},es=s("ul",null,[s("li",null,"superuser : 권한(룰) 부여")],-1),ls=p('

④ 생성한 계정(democtl)에 사용할 암호를 입력합니다.

⑤ 데이터베이스를 생성하고 생성한 데이터베이스에 소유자를 생성한 계정(democtl)으로 지정한다. 단, 데이터베이스는 superuser만 생성할 수 있다.

',2),cs={class:"custom-container tip"},os={class:"custom-container-title"},us=s("ul",null,[s("li",null,"database database명 : 데이터베이스명"),s("li",null,"owner 계정명 : 소유자명"),s("li",null,"encoding ‘UTF8’ : 인코딩 UTF8 지정"),s("li",null,"template template0 : 템플릿 데이터베이스, 초기 Object만으로 구성된 데이터베이스 템플릿")],-1),is=p('

⑥ 데이터베이스 목록을 조회하여 잘 생성되었는지 확인합니다.

(2) 데이터베이스 세팅
① 데이터베이스 Tool(TablePlus 사용)을 이용해서 Meta DB에 접속합니다.

② POWERMDD의 정보들을 저장할 수 있는 Meta DB에 들어갈 테이블들을 생성합니다.

③ 테이블에 들어갈 값들 중에 유일한 값, Primary key 값을 생성하기 위해 Sequence도 생성합니다.

④ 생성한 테이블에 기본적으로 들어갈 Data을 insert하여 commit합니다.

',5),ks={class:"custom-container tip"},gs={class:"custom-container-title"},rs=s("p",null,"insert하기 전에 SYSID, GROUPID 컬럼에 들어갈 값을 PROJECT명으로 변경합니다.",-1),ds=p('


2) 업무 DB 세팅(MySQL 사용)
해당 업무 서버에 있는 모든 정보 체계를 저장하고 있는 데이터베이스입니다.
(1) User 계정 생성
① 업무 DB 세팅할 데이터베이스에 접속합니다.

② 계정정보를 생성하기 위해 데이터베이스로 접속합니다.

③ Meta DB에 사용할 계정(demo)을 생성과 사용할 암호를 입력합니다.

',4),ms={class:"custom-container tip"},vs={class:"custom-container-title"},bs=s("ul",null,[s("li",null,"내부IP접속 : ‘계정ID’@localhost"),s("li",null,"외부IP접속 : ‘계정ID’@‘%’")],-1),_s=p('

④ 새로운 데이터베이스를 생성합니다.

⑤ 생성한 데이터베이스 및 테이블에 권한을 주고 로컬 및 원격에서도 접속이 가능하도록 설정합니다.

⑥ 설정한 권한을 적용합니다.

⑦ 데이터베이스 목록을 조회하여 잘 생성되었는지 확인합니다.

3. BMSCTX 디렉토리

WAS에 탑재되는 Middleware 서버로 다수의 Client(DX)로부터 다양한 요청에 대하여 필요한 기능을 제공합니다.

1) BMSCTX : CONTEXT 구성

(1) POWERMDD을 실행할 파일들이 들어있는 BMSCTX 디렉토리를 WAS 설치 경로에 세팅합니다.

(2) 관리자에게 받은 license.txt는 BMSCTX 디렉토리 안에, PowerMDD_1.1.jar 파일은 ‘BMSCTX/WEB-INF/lib’에 세팅합니다.

① license.txt               ② PowerMDD_1.1.jar

  

2) ProcessBuilder.config.xml : BMSCTX 환경파일 세팅

(1) 먼저 BMSCTX 셋팅하기 전에 PMDD 디렉토리 안에 개발에 대한 자바, xml 소스, 여러 가지 파일들 저장할 수 있는 디렉토리를 생성합니다.

(2) BMSCTX 디렉토리 안에 PowerMDD 실행환경 파일인 processbuilder_config.xml을 실행합니다. processbuilder_config.xml는 프로젝트, DB 정보, MAC 주소 등 등록하는 파일입니다.

(3) processbuilder_config.xml 안에는 <Projects>, <Common>, <CONNECTION>, <MAC>이 있습니다.

<?xml version="1.0" encoding="utf-8"?>
<Processbuilder Version="CL1">
  <!-- 1. -->
  <Projects>  </Projects>

  <!-- 2. -->
  <Common>  </Common>

  <!-- 3. -->
  <CONNECTIONS>  </CONNECTIONS>

  <!-- 4. -->
  <MAC>  </MAC>
</Processbuilder>

① <Project>
개발할 프로젝트들을 등록하는 부분입니다.

② <Common>

③ <CONNECTION>
Meta DB, 업무 DB 연결 정보를 설정하는 부분입니다.

④ <MAC>
POWERMDD을 사용할 사용자 MAC 주소를 입력하는 부분인데 POWERMDD 프로그램을 로그인하더라도 MAC 주소를 등록하지 않으면 POWERMDD을 접속할 수 없습니다.

(4) <Projects>
<Projects> 안에 <사용할 PROJECT명> </사용할 PROJECT명>을 입력하고 <사용할 PROJECT명> 안에는 <DB-CONNECTION>, <DATAMODEL>, <UX-DESIGNER>, <FILESYSTEM-LOCATION>, <TEST-EXE>, <BUILD>, <SERVER>, <COMPILE>이 있습니다.

<!-- 1. -->
<Projects>
  <DEMO>
    <!-- 1. -->
    <DB-CONNECTION>      </DB-CONNECTION>

    <!-- 2. -->
    <DATAMODEL>      </DATAMODEL>

    <!-- 3. -->
    <UX-DESIGNER>      </UX-DESIGNER>

    <!-- 4. -->
    <FILESYSTEM-LOCATION>      </FILESYSTEM-LOCATION>

    <!-- 5. -->
    <TEST-EXE>      </TEST-EXE>

    <!-- 6. -->
    <BUILD>      </BUILD>

    <!-- 7. -->
    <SERVER>      </SERVER>

    <!-- 8. -->
    <COMPILE>      </COMPILE>
  </DEMO>
</Projects>

① <DB-CONNECTION>
Meta DB, 업무 DB의 별칭을 입력하는 부분입니다.

<!-- 1. -->
<DB-CONNECTION>
  <WASTYPE>tomcat</WASTYPE>
  <CONTROL_DB>DEMOCTL</CONTROL_DB>
  <DEFAULT_DB>DEMODB</DEFAULT_DB>
  <TEST_DB>SAORA01</TEST_DB>                  
</DB-CONNECTION>

② <DATAMODEL>
POWERMDD 구성요소에 DataMode의 파일들을 저장하는 부분입니다.

<!-- 2. -->
<DATAMODEL>
  <MODELDATA>/.../tomcat9/webapps/BMSCTX/PMDD/DEMO/ModelData</MODELDATA>
  <MODELHISTORY>/.../tomcat9/webapps/BMSCTX/PMDD/DEMO/ModelHistory</MODELHISTORY>
</DATAMODEL>
`,28),Es={class:"custom-container tip"},Ds={class:"custom-container-title"},Ss=s("ul",null,[s("li",null,[s("p",null,[e("해당 경로에 ModelData와 ModelHistory 디렉토리를 생성해야합니다."),s("br"),s("img",{src:f,width:"280",height:"480"}),s("br")])]),s("li",null,[s("p",null,[e("ModelData 디렉토리 안에는 DataModelInfo.xml 파일을 꼭 넣어야 합니다. DataModelInfo.xml은 데이터베이스에 따라 쿼리를 변경하거나 DataModel에 필요한 정보들이 있기 때문에 꼭 필요합니다."),s("br"),s("img",{src:U,width:"280",height:"480"}),s("br")])])],-1),Ts=p(`

③ <UX-DESIGNER>
Context 경로나 문자 셋, 화면 IP Port 정보를 설정하는 부분입니다.

<!-- 3. -->
<UX-DESIGNER>
  <UX_TEMP_FOLDER>/.../tomcat9/webapps/BMSCTX/PMDD/DEMO/temp</UX_TEMP_FOLDER>
  <UX_MENU_FILE>wizdesigner.xml</UX_MENU_FILE>
  <UX_ROOT>/.../tomcat9/webapps/BMSCTX/PMDD/DEMO/layout</UX_ROOT>
  <UX_CONTEXT_ROOT>/.../tomcat9/webapps/DEMO</UX_CONTEXT_ROOT>
  <UX_ContextPath>DEMO</UX_ContextPath>
  <UX_Server>XXX.XXX.XXX.XXX:XXXX</UX_Server>
  <UXResponseCharset></UXResponseCharset>
  <UXRequestCharset></UXRequestCharset>
  <GROUP_PAGECOUNT>10</GROUP_PAGECOUNT>
  <UI></UI>
</UX-DESIGNER>
`,3),Ms={class:"custom-container tip"},qs={class:"custom-container-title"},Os=s("p",null,[e("해당 경로에 temp와 layout 디렉토리를 생성해야합니다."),s("br"),s("img",{src:w,width:"280",height:"480"}),s("br")],-1),Cs=p(`

④ <FILESYSTEM-LOCATION>
서버 파일 시스템의 파일 시스템 위치를 설정합니다.

<!-- 4. -->
<FILESYSTEM-LOCATION>
  <META-LOCATION>/.../tomcat9/webapps/BMSCTX/PMDD/DEMO/bms</META-LOCATION>
  <DOC-LOCATION>/.../tomcat9/webapps/BMSCTX/PMDD/DEMO/doc</DOC-LOCATION>
  <DOC-BOARD-ROOT>/.../tomcat9/webapps/BMSCTX/PMDD/DEMO/doc</DOC-BOARD-ROOT>
  <BACKUP-META>/.../tomcat9/webapps/PMDD/DEMO/backup</BACKUP-META>
</FILESYSTEM-LOCATION>
`,2),As={class:"custom-container tip"},hs={class:"custom-container-title"},Xs=s("p",null,[e("해당 경로에 bms, doc, backup 디렉토리를 생성해야합니다."),s("br"),s("img",{src:y,width:"280",height:"480"}),s("br")],-1),xs=p(`

⑤ <TEST-EXE>
Query Devloper 테스트에 대한 정보를 설정합니다.

<!-- 5. -->
<TEST-EXE>
  <MAXLOOPCNT>50</MAXLOOPCNT>
  <RECORDSIZE>5000</RECORDSIZE>    
  <LOCALON>YES</LOCALON>
</TEST-EXE>

⑥ <BUILD>
POWERMDD Build 시 생성되는 소스 위치를 설정합니다.

<!-- 6. -->
<BUILD>
  <SRCTYPE>EGOV</SRCTYPE>
  <SRCVERSION>4</SRCVERSION>               
  <BATCHSRCTYPE>bean</BATCHSRCTYPE>
  <DATAACCESS>MYBATIS</DATAACCESS>
  <SQLSESSION></SQLSESSION>
  <GENLOCATION>/.../tomcat9/webapps/BMSCTX/PMDD/DEMO/tlog</GENLOCATION>
  <CURRENTGEN>/.../tomcat9/webapps/BMSCTX/PMDD/DEMO/rsrc</CURRENTGEN>
  <SQLLOCATION>/.../tomcat9/webapps/BMSCTX/PMDD/DEMO/xmlctl</SQLLOCATION>
  <RUNNINGCLASS>/.../tomcat9/webapps/DEMO/WEB-INF/classes</RUNNINGCLASS>
  <CLASSLOADER>WAS</CLASSLOADER>
  <HISTORYGEN>/.../tomcat9/webapps/BMSCTX/PMDD/DEMO/hsrc</HISTORYGEN>
  <XML>YES</XML>
  <USER-EXCEPTION>YES</USER-EXCEPTION>
  <USER-TRANSACTION>YES</USER-TRANSACTION>
  <TRANSACTIONMANAGER>txManager</TRANSACTIONMANAGER>
  <XMLBUILDTYPE>YES</XMLBUILDTYPE>
  <SoruceCharset></SoruceCharset>
  <GEN2Charset>YES</GEN2Charset>
  <EGOVFRAMEWORK>
    <REQUESTMAPPING_RULE>/{CLASS}_{SERVICEID}.sa</REQUESTMAPPING_RULE>
    <CONTEXT_XML_HOME>/.../tomcat9/webapps/DEMO/WEB-INF/classes/spring</CONTEXT_XML_HOME>
    <SQL_MAP_ROOT>/.../tomcat9/webapps/DEMO/WEB-INF/classes/sqlmap/sql</SQL_MAP_ROOT>
    <EBUILD_SQLMAP_LEVEL>1</EBUILD_SQLMAP_LEVEL>
    <EBUILD_JAVA_CONTROL>web</EBUILD_JAVA_CONTROL>
    <EBUILD_JAVA_SERVICE>service</EBUILD_JAVA_SERVICE>
    <EBUILD_JAVA_DAO>dao</EBUILD_JAVA_DAO>
    <EBUILD_JAVA_IMPL>Impl</EBUILD_JAVA_IMPL>
    <MYBATIS_SESSION_MANAGER>mybatis.sample.SqlSessionManager</MYBATIS_SESSION_MANAGER>
    <DATASOURCE>context-datasource.xml</DATASOURCE>
    <CONTEXT_SQLMAP>context-sqlMap.xml</CONTEXT_SQLMAP>
    <ANNOTATION_RULE>{CLASS}{MENUID}</ANNOTATION_RULE>
    <SQL_MAP_NAMESPACE_RULE>{CLASS}_{MENUID}</SQL_MAP_NAMESPACE_RULE>
    <SQL_MAP_ROOT_PATHNAME>sqlmap/sql</SQL_MAP_ROOT_PATHNAME>
    <SQL_MAP_DTD_URL>http://mybatis.org/dtd/mybatis-3-mapper.dtd</SQL_MAP_DTD_URL>
    <SQL_MAP_DTD_ORG>-//mybatis.org//DTD Mapper 3.0//EN</SQL_MAP_DTD_ORG>
    <SQL_MAP_CONFIG_DTD_URL>http://mybatis.org/dtd/mybatis-3-config.dtd</SQL_MAP_CONFIG_DTD_URL>
    <SQL_MAP_CONFIG_DTD_ORG>-//mybatis.org//DTD Config 3.0//EN</SQL_MAP_CONFIG_DTD_ORG>
  </EGOVFRAMEWORK>
</BUILD>
`,5),Bs={class:"custom-container tip"},Rs={class:"custom-container-title"},Ls=s("p",null,[e("해당 경로에 tlog, rsrc, xmlctl, hsrc 디렉토리를 생성해야합니다."),s("br"),s("img",{src:W,width:"280",height:"480"}),s("br")],-1),Ps=p(`

⑦ <SERVER>
해당 서버의 정보들을 설정합니다.

<!-- 7. -->
<SERVER>
  <REAL_COPY_TYPE>FTP</REAL_COPY_TYPE>
  <REAL_SQL_MAP_ROOT>/TEST/SQL</REAL_SQL_MAP_ROOT>
  <REAL_CLASS_ROOT>/TEST/UUU</REAL_CLASS_ROOT>
  <REAL_IP>XXX.XXX.XXX.XXX</REAL_IP>
  <REAL_ID>서버 계정 ID</REAL_ID>
  <REAL_PWD>서버 계정 암호</REAL_PWD>
</SERVER>

⑧ <COMPILE>
POWERMDD Comfile 시 생성되는 소스 위치를 설정합니다.

<!-- 8. -->
<COMPILE>
  <BUILD></BUILD>
  <CLASSPATH>/.../tomcat9/webapps/DEMO/WEB-INF/classes</CLASSPATH>
  <OPTION></OPTION>
  <LIB>/.../tomcat9/webapps/BMSCTX/jclib</LIB>
  <EXTDIR>false</EXTDIR>
  <DELIM>:</DELIM>
</COMPILE>

(5) <Common>

<!-- 2. -->
<Common>
  <ADMIN></ADMIN>
  <SECURITY>YES</SECURITY>
  <TEMPFOLDER>/.../tomcat9/webapps/BMSCTX/PMDD/DEMO/temp</TEMPFOLDER>
  <DxRequestCharset></DxRequestCharset>
  <DxResponseCharset>utf-8</DxResponseCharset>
  <InputCharSet></InputCharSet>
  <SoruceCharset>utf-8</SoruceCharset>
  <DebugOn>no</DebugOn>
  <CLASSAUTOLOAD>true</CLASSAUTOLOAD>
  <BUILDTYPE></BUILDTYPE>
  <NEWLINE>n</NEWLINE>
  <InputCharSet></InputCharSet>
  <BACKUP_DUMPFILE>/>/...//tomcat9/webapps/BMSCTX/PMDD/backup</BACKUP_DUMPFILE>
</Common>

(6) <CONNECTIONS>
<MATADB>, <업무DB> 생성해서 연결정보를 설정합니다.

<!-- 3. -->
<CONNECTIONS>
  <DEMOCTL>
    <TYPE>direct</TYPE>
    <USER>DB계정</USER>
    <PASSWORD>DB계정 암호</PASSWORD>
    <LOOKUP_NAME>DEMOCTL</LOOKUP_NAME>
    <PATH>jdbc:postgresql://XXX.XXX.XXX.XXX:XXXX/democtl</PATH>
    <WAS>tomcat</WAS>
    <DATABASE>postgresql</DATABASE>
  </DEMOCTL>
  <DEMODB>
    <TYPE>direct</TYPE>
    <USER>DB계정</USER>
    <PASSWORD>DB계정 암호</PASSWORD>
    <LOOKUP_NAME>DEMODB</LOOKUP_NAME>
    <PATH>jdbc:mysql://XXX.XXX.XXX.XXX:XXXX/demo?useSSL=false</PATH>
    <WAS>tomcat</WAS>
    <DATABASE>mysql</DATABASE>
  </DEMODB>
</CONNECTIONS>

(7) <CONNECTIONS>

① MAC 주소를 등록하기 전에 등록할 PC의 CMD 창을 열어서 MAC주소를 확인합니다.

② 확인한 MAC주소를 등록합니다.

<!-- 4. -->
<MAC>
  <ADDRESS MAC="맥주소">PMDD</ADDRESS>
</MAC>

3) BMSCTX의 web.xml의 구성

(1) BMSCTX의 환경설정하기 위해 ‘BMSCTX\\WEB-INF’에서 web.xml을 클릭합니다.

(2) HostName, TempUploadPath, FileRootPath을 설정합니다.

<init-param> 
    <param-name>HostName</param-name>
    <param-value>호스트명</param-value>
</init-param> 
<init-param>
    <param-name>RequestCharset</param-name>
    <param-value>UTF-8</param-value>
</init-param>
<init-param>
    <param-name>ResponseCharset</param-name>
    <param-value>UTF-8</param-value>
</init-param>

<init-param>
  <param-name>TempUploadPath</param-name>
  <param-value>/.../tomcat9/webapps/BMSCTX/temp</param-value>
</init-param> 
<init-param>
  <param-name>FileRootPath</param-name>
  <param-value>/.../tomcat9/webapps/BMSCTX/temp/files</param-value>
</init-param>  

4. WebaApplication명 디렉토리

Lib, Class, Css, jsp 등 웹 애플리케이션 실행파일들의 보관 디렉토리입니다.

1) WebApplication : CONTEXT 구성
개발할 업무 디렉토리를 WAS 설치 경로에 세팅하고 해당 Project명으로 변경합니다.

2) web.xml의 구성

(1) 업무 디렉토리의 환경설정을 위해 ‘WebApplication명\\WEB-INF’에서 web.xml을 클릭합니다.

(2) <display-name>을 설정합니다.

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="4.0" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd">
	<display-name>PowerMDD</display-name>

(3) encodingFiter와 View에서 action 처리하는 url-pattern를 설정합니다.

<filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <url-pattern>*.sa</url-pattern>
</filter-mapping>

....

<servlet-mapping>
  <servlet-name>action</servlet-name>
  <url-pattern>*.sa</url-pattern>
</servlet-mapping>
`,29),Ns={class:"custom-container tip"},Is={class:"custom-container-title"},fs=s("p",null,[e("BMSCTX폴더에 processbuilder_config.xml 파일에서도 부분에도 설정하는 곳이 있습니다. 안맞을 경우 오류날 수 있으니 확인해야합니다."),s("br")],-1),Us=p(`

(4) XMLCTL에서 xml파일 경로를 설정합니다.

<init-param>
  <param-name>XMLCTL</param-name>
  <param-value>/.../tomcat9/webapps/BMSCTX/PMDD/DEMO/xmlctl</param-value>
</init-param>

(5) FileUpload에서 임시로 저장될 경로와 파일 업로드할 경로를 설정합니다.

<servlet>
  <servlet-name>FileUpload</servlet-name>
  <servlet-class>egov.wizware.ria.FileUploadServlet</servlet-class>
  <init-param>
    <param-name>TEMP</param-name>
    <param-value>/.../tomcat9/webapps/DEMO/file/temp/</param-value>
  </init-param>
 <init-param>
    <param-name>REAL</param-name>
    <param-value>/.../tomcat9/webapps/DEMO/file/real/</param-value>
  </init-param>
 <init-param>
    <param-name>IMG</param-name>
    <param-value>file/real/</param-value>
  </init-param>
 <init-param>
    <param-name>IMGTEMP</param-name>
    <param-value>file/temp/</param-value>
  </init-param>
  <init-param> 
    <param-name>EXTENSION</param-name> 
    <param-value>jsp,java,com,exe,bat,class,java,jsp,html,js,css</param-value> 
  </init-param>
</servlet>

3) spring 설정
(1) context-datasource.xml
① ‘WebApplication명\\WEB-INF/classes/spring’에 들어가서 context-datasource.xml을 클릭합니다.

② 업무DB 데이터베이스를 추가한다. 계정과 계정암호는 globals.properties 부분에서 설정합니다.

<!-- mysql -->
<bean id="dataSource-mysql" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="\${Globals.DriverClassName}"/>
    <property name="url" value="\${Globals.Url}" />
    <property name="username" value="\${Globals.UserName}"/>
    <property name="password" value="\${Globals.Password}"/>
</bean>

(2) context-sqlMap.xml
① ‘WebApplication명\\WEB-INF/classes/spring’에 들어가서 context-sqlMap.xml을 클릭합니다.

② sqlMap-Confing 경로를 변경합니다.

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource-mysql" />
  <property name="configLocation" value="classpath:sqlmap/sql/DEMO/DEMO-SqlMap-Config.xml" />
</bean> 

(3) context-transaction.xml
① ‘WebApplication명\\WEB-INF/classes/spring’에 들어가서 context-transaction.xml을 클릭합니다.

② transaction 설정하는 곳에 dataSource와 expression를 변경합니다.

<!-- transaction 설정 -->
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  <property name="dataSource" ref="dataSource-mysql"/>
</bean>

<tx:advice id="txAdvice" transaction-manager="txManager">
  <tx:attributes>
    <tx:method name="*" rollback-for="Exception"/>
    <tx:method name="*" propagation="REQUIRED" rollback-for="Throwable"/>
  </tx:attributes>
</tx:advice>

<aop:config>
  <aop:pointcut id="requiredTx" expression="execution(* DEMO..*Impl.*(..))"/>
  <aop:advisor advice-ref="txAdvice" pointcut-ref="requiredTx" />
</aop:config>

(4) globals.properties
① ‘WebApplication명\\WEB-INF/classes/spring/env’에 들어가서 globals.properties을 클릭합니다.

② 업무DB 데이터베이스의 정보들을 설정합니다.

Globals.OsType = UNIX
Globals.DbType = mysql
Globals.UserName=DB계정
Globals.Password=DB계정 암호

#mysql
Globals.DriverClassName=com.mysql.cj.jdbc.Driver
Globals.Url=jdbc:mysql://XXX.XXX.XXX.XXX:XXXX/demo?useSSL=false&autoReconnect=true&allowPublicKeyRetrieval=true

(5) egov-com-servlet.xml
① ‘WebApplication명\\WEB-INF/classes/spring/ServletInfo’에 들어가서 egov-com-servlet.xml을 클릭합니다.

② 패키지와 Ria부분을 수정합니다.

<!-- 패키지 내 Controller, Service, Repository 클래스의 auto detect를 위한 mvc 설정 -->
<context:component-scan base-package="DEMO.*">
    <context:include-filter
        type="annotation"
        expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- Ria 연결 -->
<bean id="riaAdaptor" class="egov.wizware.ria.UIWizAdaptor">
    <property name="devlog" value="yes"/>
    <property name="errorlog" value="yes"/>
    <property name="trace" value="yes"/>
    <property name="session" value="false"/>
    <property name="sysid" value="DEMO"/>
    <property
        name="xmlctl"
        value="/.../tomcat9/webapps/BMSCTX/PMDD/DEMO/xmlctl"/>
    <property
        name="exceldown"
        value="/.../tomcat9/webapps/BMSCTX/PMDD/DEMO/Temp"/>
    <property name="dbdriver" value="org.postgresql.Driver"/>
    <property name="dburl" value="jdbc:postgresql://XXX.XXX.XXX.XXX:XXXX/democtl"/>
    <property name="dbuser" value="DB계정"/>
    <property name="dbpassword" value="DB계정 암호"/>
</bean>

<!-- Ria 연결 -->
<bean id="riaView" class="egov.wizware.ria.AjaxWizView">
    <property name="trace" value="yes"/>
    <property name="session" value="false"/>
    <property name="sysid" value="DEMO"/>
    <property
        name="xmlctl"
        value="/.../tomcat9/webapps/BMSCTX/PMDD/DEMO/xmlctl"/>
    <property name="notfoundgeturl" value="/DEMO/jsp/bbb.jsp"/>
    <property name="errorlog" value="yes"/>
    <property name="dbdriver" value="org.postgresql.Driver"/>
    <property name="dburl" value="jdbc:postgresql://XXX.XXX.XXX.XXX:XXXX/democtl"/>
    <property name="dbuser" value="DB계정"/>
    <property name="dbpassword" value="DB계정 암호"/>
</bean>

[riaAdaptor]

[riaView]

`,27);function ws(ys,Ws){const n=c("Badge");return o(),u("div",null,[$,a(" Remark "),s("div",Z,[s("p",ss,[t(n,{type:"tip",text:"Remark",vertical:"middle"})]),as]),a(" "),ns,a(" Remark "),s("div",ts,[s("p",ps,[t(n,{type:"tip",text:"Remark",vertical:"middle"})]),es]),a(" "),ls,a(" Remark "),s("div",cs,[s("p",os,[t(n,{type:"tip",text:"Remark",vertical:"middle"})]),us]),a(" "),is,a(" Remark "),s("div",ks,[s("p",gs,[t(n,{type:"tip",text:"Remark",vertical:"middle"})]),rs]),a(" "),ds,a(" Remark "),s("div",ms,[s("p",vs,[t(n,{type:"tip",text:"Remark",vertical:"middle"})]),bs]),a(" "),_s,a(" Remark "),s("div",Es,[s("p",Ds,[t(n,{type:"tip",text:"Remark",vertical:"middle"})]),Ss]),a(" "),Ts,a(" Remark "),s("div",Ms,[s("p",qs,[t(n,{type:"tip",text:"Remark",vertical:"middle"})]),Os]),a(" "),Cs,a(" Remark "),s("div",As,[s("p",hs,[t(n,{type:"tip",text:"Remark",vertical:"middle"})]),Xs]),a(" "),xs,a(" Remark "),s("div",Bs,[s("p",Rs,[t(n,{type:"tip",text:"Remark",vertical:"middle"})]),Ls]),a(" "),Ps,a(" Remark "),s("div",Ns,[s("p",Is,[t(n,{type:"tip",text:"Remark",vertical:"middle"})]),fs]),a(" "),Us])}const Fs=l(z,[["render",ws],["__file","PowerMddBms.html.vue"]]);export{Fs as default};