본문 바로가기

일경험

[국민취업지원제도 일경험프로그램 32일차] 넥사크로(NEXACRO) Spring 연결하기

반응형

32일 차 특이사항

1. 넥사크로를 Spring과 연결한다. 연동한다? 정확히 어떤 것인지 이해되지 않는데 일단 찾아본다. 

2. 이런 과정이다. 

넥사크로 Spring 연동
출처 : 투비소프트

3. https://www.playnexacro.com/#show:learn:5421 여기를 참고해서 처음부터 만들고 있다. 연동 과정이 생각보다 길다. 차근차근해보자. 

 

4. https://www.playnexacro.com/#show:learn:5456 쉽게 설명되어 있음. 

 

계속 되는 오류

1. http://localhost:8082/sampleuiadapterN/sample 로 url요청을 하면 넥사크로 view 파일이 나오지 않는다. 이걸로 지금 3시간째 씨름 중. 아래는 오류 내용이다. Resource가 없단다. 분명히 설정했는데 왜 없어? 

14:52:47.789 [http-nio-8082-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - GET "/sampleuiadapterN/sample", parameters={}
14:52:47.790 [http-nio-8082-exec-1] DEBUG org.springframework.web.servlet.handler.SimpleUrlHandlerMapping - Mapped to ResourceHttpRequestHandler ["/"]
14:52:47.791 [http-nio-8082-exec-1] DEBUG org.springframework.web.servlet.resource.ResourceHttpRequestHandler - Resource not found
14:52:47.791 [http-nio-8082-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet - Completed 404 NOT_FOUND

2. 그냥 싹다 지우고 다시 설정해줬다. 

3. http://localhost:8080/sampleuiadapterN/sample/  /를 빼먹으면 404 오류 난다. 꼭 넣어주자. 

4. 결국 넥사크로 파일을 Spring과 연동했다. url 요청시 넥사크로 페이지가 출력된다. 

넥사크로 Spring 연동2

5. 주요 코드 

1) servelet-context.xml 

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans
  xmlns="http://www.springframework.org/schema/mvc"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:beans="http://www.springframework.org/schema/beans"
  xmlns:context="http://www.springframework.org/schema/context"
  xmlns:p="http://www.springframework.org/schema/p"

  xsi:schemaLocation="
  http://www.springframework.org/schema/mvc
  https://www.springframework.org/schema/mvc/spring-mvc.xsd
  http://www.springframework.org/schema/beans
  https://www.springframework.org/schema/beans/spring-beans.xsd
  http://www.springframework.org/schema/context
  https://www.springframework.org/schema/context/spring-context.xsd">

  <!-- 어노테이션 설정 방식 사용 -->
  <annotation-driven />

  <!-- sample 패키지 안의 클래스들을 스캔하고, 어노테이션을 확인 후 bean 인스턴스를 생성 -->
  <context:component-scan base-package="sample" />

  <!-- 정적 자원 매핑 기능 -->
  <!-- 모든 요청은 MVC에 영향을 받아서 직접 접근이 불가능하다. location에 대한 요청이 들어오면 WAS에게 위임을하면서 
    mapping에 해당하는 각각의 URL로 직접 접근이 가능 -->
  <resources mapping="/**" location="/" />

  <!-- p:order를 사용하여 넥사크로N RequestMappingHandlerAdapter 보다 후순위로 호출한다. -->
  <beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:order="1">
    <beans:property name="prefix" value="/WEB-INF/views/" />
    <beans:property name="suffix" value=".jsp" />
  </beans:bean>

  <!-- Nexacro N uiadapter 연동 작업 -->
   <beans:bean id="nexacroInterceptor" class="com.nexacro.uiadapter.spring.core.servlet.NexacroInterceptor"/>
   <beans:bean id="nexacroFileView" class="com.nexacro.uiadapter.spring.core.view.NexacroFileView" />
   <beans:bean id="nexacroView" class="com.nexacro.uiadapter.spring.core.view.NexacroView">
        <beans:property name="defaultContentType" value="PlatformXml" />
        <beans:property name="defaultCharset" value="UTF-8" />
   </beans:bean>

    <!-- 넥사크로N RequestMappingHandlerAdapter 구현체 등록 -->
    <!-- 넥사크로플랫폼 의 입/출력 데이터 변환을 수행하기 위해 Spring의 RequestMappingHandlerAdapter의 확장된 형태.  java.util.Map의 데이터 변환을 제공  -->
    <beans:bean class="com.nexacro.uiadapter.spring.core.resolve.NexacroRequestMappingHandlerAdapter" p:order="0">
        <beans:property name="customArgumentResolvers">
          <!-- 개발자가 작성하게 되는 Controller의 입력 파라미터 중 넥사크로플랫폼 의 데이터 변환을 수행   Ex> DataSet -> java bean -->
          <beans:list>
               <beans:bean class="com.nexacro.uiadapter.spring.core.resolve.NexacroMethodArgumentResolver" />
          </beans:list>
        </beans:property>
        <beans:property name="customReturnValueHandlers">
            <beans:list>
              <!-- Controller에서 반환 되는 값을 넥사크로플랫폼 의 데이터로 변환   Ex> java bean -> Dataset -->
                <beans:bean class="com.nexacro.uiadapter.spring.core.resolve.NexacroHandlerMethodReturnValueHandler">
                  <!-- 넥사크로플랫폼 으로 데이터 송신 역할을 수행합니다  -->
                    <beans:property name="view" ref="nexacroView" />
                    <!-- 넥사크로플랫폼 으로 File 데이터에 대한 송신 역할을 수행  -->
                    <beans:property name="fileView" ref="nexacroFileView" />
                </beans:bean>
            </beans:list>
        </beans:property>
    </beans:bean>

</beans:beans>

 

Controller, service, dao, mapper 

1. 이제 환경설정 및 Controller, service, dao, mapper를 만들고 화면에서 데이터를 출력해보자.  

2. NexacroN_server_license 추가? 이건 뭐지? 다운로드하는 건가?  라이선스를 넣어주지 않자 오류가 났다. 

3. TOBESOFT 사이트 들어가서 체험판 라이선스 다운받아야 된다. 아래 링크 클릭하면 체험판 라이선스 다운로드 화면으로 이동한다.  https://www.tobesoft.com/product/nexacro

넥사크로 체험판 라이선스 다운로드
NEXACRO 체험판 라이선스 다운로드

4. 이메일로 라이선스 파일을 보내준다. client 아니고 server를 넣어줘야 한다. 다운로드해서 src/main/resources 폴더 내부에 넣어주자. 

 

5. 결국 해냄. Spring과 연동해서 데이터 검색 및 조회가 가능하다. 

 

느낀 점

환경설정 때문에 복잡해보이지만 해보니까 괜찮았다. 해결하고 집 가서 뿌듯하다. 

반응형