전자정부 프레임워크와 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
'전자정부 프레임워크(eGovFrame) & Nexacro Platform' 카테고리의 다른 글
전자정부 프레임워크(eGovFrame) - 1. 설치 및 시작 (0) | 2022.11.14 |
---|