전자정부 프레임워크(eGovFrame) & Nexacro Platform

전자정부 프레임워크(eGovFrame) 와 Nexacro Platform 17 - 2.넥사크로 설치

워니_94 2022. 11. 15. 22:24

전자정부 프레임워크와 Nexacro Platform 17 (이하 넥사크로) 이용한 프로젝트를 

 

진행 중이다. (그래서 현재. 자바 프로젝트는 잠정 중단.)

 

현재 진행형으로 다니고 있는 회사에서 사용 중이며, 현장에서 많이 작업한다고 하니..

 

이 프로젝트를 통해서 도움이 되면 좋겠다.

 

다른 현직자 친구들은 구시대의 유물이다라고 하지만.. 아직 개발 1년차도 안된 본인에겐..

 

늘 새로워 짜릿해.. 

 

아무튼. 저번 전자정부 프레임워크 포스팅 1회차에 이어서 2회차로 넥사크로 설치와 설정까지 해보려고 한다.

 

-----

[ 넥사크로 설치 ]

  http://www.tobesoft.com/product/Nexacro17.do 링크로 위 홈페이지로 이동

1. 체험판 다운로드 ( 간단한 양식 입력 )

 

2. nexacro_platform_17_Trial.zip 파일 다운로드 후, 압축 풀기 -> nexacro17.SetupStudio.exe 설치 파일 실행

 

3. 설치 파일 실행 시 일반적인 프로그램 다운로드 프로세스 진행.

 

4. 완료.

 

시작프로그램 , 바탕화면에서 nexacro studio가 설치된 것을 확인할 수 있음.

-----

[ 넥사크로와 전자정부 프레임워크를 연동하기 위한 작업 ]

1. IBatis 관련 파일 제거

저번에 설치한 전자정부 프레임워크 폴더 내 src/main/resources/egovframework 폴더 내의 IBatis 관련 파일 제거

MyBatis를 사용할 것이므로 해당 파일들 제거 실시

 

 2. src/main/java 의 예제 샘플 , 패키지 파일들 제거

 

3. egovframework/spring에 context-aspect.xml 파일 설정 지우기

 

4. 동일 폴더 context-mapper.xml 의 mapperLocation 속성 주석 처리

( 주석처리 하지 않으면 서버 기동 시, 에러가 난다고 한다니 주의하자 )

--- 이 이후는 설치한 넥사크로와 연동하기 위한 작업

 

[ 전자정부 프레임워크 내 라이브러리 및 파일 설정 ]

 

5. Pom.xml 에 repository 추가

( repositories 태그 내에 repository를 추가해야한다던가의 기본적인 설명은 생략하도록 하겠다 )

 

<!-- ############  NEXACROPLATFORM UIADAPTER17 REPOSITORY  ############ -->
<repository>
  <id>tobesoft</id>
  <url>http://mangosteen.tobesoft.co.kr/nexus/repository/maven-public</url>
  <releases>
    <enabled>true</enabled>
  </releases>
  <snapshots>
    <enabled>true</enabled>
  </snapshots>
</repository>

 

6. Pom.xml 에 dependency 추가

<!-- ############  NEXACROPLATFORM UIADAPTER17 LIBRARY  ############ -->
<dependency>
  <groupId>com.nexacro.uiadapter17.spring</groupId>
  <artifactId>uiadapter17-spring-core</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <exclusions>
    <exclusion>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
    </exclusion>
    <exclusion>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
    </exclusion>
  </exclusions>
</dependency>
<dependency>
  <groupId>com.nexacro.uiadapter17.spring</groupId>
  <artifactId>uiadapter17-spring-dataaccess</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <exclusions>
    <exclusion>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
    </exclusion>
    <exclusion>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjweaver</artifactId>
    </exclusion>
    <exclusion>
      <groupId>org.apache.ibatis</groupId>
      <artifactId>ibatis-sqlmap</artifactId>
    </exclusion>
    <exclusion>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
    </exclusion>
    <exclusion>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
    </exclusion>
    <exclusion>
      <groupId>org.springframework</groupId>
      <artifactId>spring-orm</artifactId>
    </exclusion>
  </exclusions>
</dependency>
<dependency>
  <groupId>com.nexacro.uiadapter17.spring</groupId>
  <artifactId>uiadapter17-spring-excel</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <exclusions>
    <exclusion>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
    </exclusion>
  </exclusions>
</dependency>

넥사크로 관련 라이브러리가 추가 된 것을 확인할 수 있음.

7. src/main/webapp/WEB-INF/config/egovframework/springmvc 폴더 내 dispatcher-servlet.xml 설정

uiadapter17 데이터변환 처리관련 설정을 위함임
uiadapter17 모듈의 bean으로 등록하여 사용하기 위한 설정
중요기능들을 선언함으로써 uiadapter17 을 사용 할 수 있게 됨
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
                http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
                http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

    <context:component-scan base-package="egovframework">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
    </context:component-scan>

    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
        <property name="interceptors">
            <list>
                <ref bean="localeChangeInterceptor" />
            </list>
        </property>
    </bean>
    
    <bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
      <property name="defaultLocale" value="ko" />
    </bean>
    <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
        <property name="paramName" value="lang" />
    </bean>
    
    <!-- /////////////////////////////////// 넥사크로플랫폼 UIADAPTER17 설정 시작 /////////////////////////////////// -->
    <bean id="nexacroFileView"    class="com.nexacro.uiadapter17.spring.core.view.NexacroFileView" />
    <bean id="nexacroView"        class="com.nexacro.uiadapter17.spring.core.view.NexacroView">
        <property name="defaultContentType" value="PlatformXml" />
        <property name="defaultCharset" value="UTF-8" />
    </bean>
    
    <!-- 넥사크로플랫폼 RequestMappingHandlerAdapter 구현체 등록 -->
    <bean class="com.nexacro.uiadapter17.spring.core.resolve.NexacroRequestMappingHandlerAdapter" p:order="0">
        <property name="customArgumentResolvers">
            <list><bean class="com.nexacro.uiadapter17.spring.core.resolve.NexacroMethodArgumentResolver" /></list>
        </property>
        <property name="customReturnValueHandlers">
            <list>
                <bean class="com.nexacro.uiadapter17.spring.core.resolve.NexacroHandlerMethodReturnValueHandler">
                    <property name="view"     ref="nexacroView" />
                    <property name="fileView" ref="nexacroFileView" />
                </bean>
            </list>
        </property>
    </bean>
    
    <!-- 넥사크로플랫폼 EXCEPTION-RESOLVER 등록 -->
    <bean id="exceptionResolver" class="com.nexacro.uiadapter17.spring.core.resolve.NexacroMappingExceptionResolver" p:order="1">
        <property name="view" ref="nexacroView" />   
        <property name="shouldLogStackTrace" value="true" />   
        <property name="shouldSendStackTrace" value="true" />
        <!-- shouldSendStackTrace 가 false 일 경우 nexacro platform으로 전송되는 에러메시지  -->
        <!-- <property name="defaultErrorMsg" value="An Error Occured. check the ErrorCode for detail of error infomation" /> -->
        <property name="defaultErrorMsg" value="fail.common.msg" />
        <property name="messageSource" ref="messageSource" />   
    </bean>    
    <!-- /////////////////////////////////// 넥사크로플랫폼 UIADAPTER17 설정 끝 /////////////////////////////////// -->
</beans>

위 코드를 그대로 복붙하여 설정하자 (설정이 잘 안되면 ClassNotFoundException 등 각종 익셉션이 반겨주니 주의하자 )

8. src/main/resources/spring 경로에 xml 파일 추가

Database 타입 셋팅을 위한 context-nexacro.xml 파일을 추가

 

해당 파일에 다음 소스를 붙여 넣은 후, 사용할 데이터 베이스 타입에 맞게 설정하자

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:p="http://www.springframework.org/schema/p" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
        ">
        
  <bean id="applicationContextProvider" class="com.nexacro.uiadapter17.spring.core.context.ApplicationContextProvider" lazy-init="false" />

  <bean id="hsqlDbms"   class="com.nexacro.uiadapter17.spring.dao.dbms.Hsql" />
<!-- 
  <bean id="oracleDbms" class="com.nexacro.uiadapter17.spring.dao.dbms.Oracle" />
  <bean id="mssqlDbms"  class="com.nexacro.uiadapter17.spring.dao.dbms.Mssql" />
  <bean id="mysqlDbms"  class="com.nexacro.uiadapter17.spring.dao.dbms.Mysql" />
  <bean id="tiberoDbms" class="com.nexacro.uiadapter17.spring.dao.dbms.Tibero" />
 -->  
  <bean id="dbmsProvider" class="com.nexacro.uiadapter17.spring.dao.DbVendorsProvider">
      <property name="dbvendors">
          <map>
           <entry key="HSQL Database Engine" value-ref="hsqlDbms"/>
<!-- 
           <entry key="Oracle"     value-ref="oracleDbms"/>
           <entry key="SQL Server" value-ref="mssqlDbms"/>
           <entry key="MySQL"      value-ref="mysqlDbms"/>
              <entry key="Tibero"     value-ref="tiberoDbms"/>
 -->
          </map>
      </property>
  </bean>
</beans>

 

9. src/main/resources/egovframework/sqlmap/example에 sql-mapper-config.xml 설정 추가

Mybatis 의 Map 사용시 기본적으로 데이터 조회 후 결과가 없을시 컬럼을 생성하지 않습니다. 하지만 Maybatis 의 기능인 interceptor plugin 을 셋팅하면 쿼리 resultType 이 Map 일 경우 조회 결과가 없어도 해당 컬럼을 생성합니다. 그리하여 Mybatis 설정파일인 sql-mapper-config.xml 파일에 interceptor plugin 내용을 추가합니다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>
   
  <!-- myBatis Inteceptor for get column information  -->
  <plugins>  
    <!-- NexacroMybatisMetaDataProvider :  Executor Plugin:쿼리를 실행하며, 
        List 형태의 데이터 조회 시 조회된 결과가 0건일 경우 결과 메타데이 터 정보를 조회
        resultType이 Map 일 경우 추가적으로 메타데이터 조회를 위한 쿼리를 실행한다.  -->
    <plugin interceptor="com.nexacro.uiadapter17.spring.dao.mybatis.NexacroMybatisMetaDataProvider" />
    <!-- NexacroMybatisResultSetHandler :ResultSetHandler Plugin – Executor Plugin에서 메타데이터 조회를 위해 쿼리를 실행하였을 경우에만 동작, 
        ResultSetMetaData 와 resultType에 존재하는 필드 정보를 확인하여 메타데이터 정보를 조회 한 다.  -->
    <plugin interceptor="com.nexacro.uiadapter17.spring.dao.mybatis.NexacroMybatisResultSetHandler" />
  </plugins>
</configuration>

이후 프로젝트 클린, 메이븐 업데이트 등 스프링을 배웠다면 많이 했을 설정 파일이 제대로 돌아가기 위한 조취를 취하자

프로젝트 클린
메이븐 업데이트

-- 22. 11. 15.--

내일 출근을 위해 오늘은 여기까지만 작성. 내일 퇴근 후 넥사크로 스튜디오 - 전자정부 프레임워크로 파일 띄우는 작업을

마저 포스팅 하겠다.

 

- 일단 결과물-

 

 

-----

참고 사이트

http://www.tobesoft.com/product/Nexacro17.do 넥사크로 다운로드 사이트

 

nexacro platform 17 < 제품 < TOBESOFT

넥사크로플랫폼의 새로운 개발 도구(넥사크로 스튜디오)와 개발 편의성과 생산성을 높이는 새로운 기능들에 대해 소개하고 있습니다. 넥사크로플랫폼은 하나의 코드로 웹과 네이티브 환경에

www.tobesoft.com

http://docs.nexacro.com/edu_nexacro17_design_kr#1fbaaa11ca8b8b78 넥사크로 다운로드 과정

 

넥사크로플랫폼 17 디자인 교육 교재

 

docs.nexacro.com

http://docs.tobesoft.com/getting_started_nexacro_17_ko#b054f6d0ecccb2c9 넥사크로 자습서

 

넥사크로플랫폼 17 초보자를 위한 자습서 17.1.3.100

이 내용이 얼마나 도움이 되셨나요? 피드백이 기록되었습니다. 감사합니다. 전혀 도움이 되지 않음도움이 되지 않음조금 도움이 됨도움이 됨매우 도움이 됨

docs.tobesoft.com

https://www.playnexacro.com/#show:learn:1412 

 

play nexacro:플레이 넥사크로

Play Nexacro is a community site for nexacro platform. 넥사크로 플랫폼 사용자 커뮤니티

www.playnexacro.com

https://www.playnexacro.com/#show:learn:1420

 

play nexacro:플레이 넥사크로

Play Nexacro is a community site for nexacro platform. 넥사크로 플랫폼 사용자 커뮤니티

www.playnexacro.com