32일 차 특이사항
1. 넥사크로를 Spring과 연결한다. 연동한다? 정확히 어떤 것인지 이해되지 않는데 일단 찾아본다.
2. 이런 과정이다.
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 요청시 넥사크로 페이지가 출력된다.
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
4. 이메일로 라이선스 파일을 보내준다. client 아니고 server를 넣어줘야 한다. 다운로드해서 src/main/resources 폴더 내부에 넣어주자.
5. 결국 해냄. Spring과 연동해서 데이터 검색 및 조회가 가능하다.
느낀 점
환경설정 때문에 복잡해보이지만 해보니까 괜찮았다. 해결하고 집 가서 뿌듯하다.
'일경험' 카테고리의 다른 글
[국민취업지원제도 일경험프로그램 34일차] 게시판 조회수 증가, 넥사크로(NEXACRO) transaction () 함수 (0) | 2023.09.18 |
---|---|
[국민취업지원제도 일경험프로그램 33일차] 넥사크로 Spring 연결하기 완료 (0) | 2023.09.15 |
[국민취업지원제도 일경험프로그램 31일차] 넥사크로(NEXACRO) 체크박스에 값 설정하기 (0) | 2023.09.13 |
[국민취업지원제도 일경험프로그램 30일차] 넥사크로(NEXACRO) 학점 계산 프로그램 (0) | 2023.09.12 |
[국민취업지원제도 일경험프로그램 29일차] 넥사크로(NEXACRO) (0) | 2023.09.11 |