본문으로 건너뛰기
버전: 3.4.4

커스터마이징

본 문서에서는 BXI 커스터마이징에 대해 설명한다.

기관, 채널, 시스템의 인터페이스 처리시 발생되는 다양한 요건 수용을 위해 프로그램을 개발하고, 적용할 수 있다. 커스터마이징한 프로그램은 프로그램정보에 등록해 사용자프로그램으로 사용할 수도 있고, 라우터로 등록해 플로우 처리 시 사용할 수도 있다.

이를 위해 별도로 전달되는 bxi.extension를 통해 소스를 작성하고, 해당 프로그램을 등록한다.

프로그램 적용절차

  1. BXI서버에 배포한다.
  2. 기본설정관리 > 프로그램정보를 이용하여 개발된 프로그램을 등록한다. 시스템프로그램여부는 사용자프로그램으로 등록하고, 프로그램용도는 개발한 프로그램 종류에 따라 달라진다. 또한, 프로그램클래스는 패키지를 포함해 입력한다. ex)bxi.extension.customizing.api.ErrorMessageCreate
  3. 등록한 프로그램을 배포한다.
  4. 프로그램을 적용할 설정화면에 프로그램ID를 설정한다.
서버배포 방법
  • 동적배포 사용 시 : 개발한 프로그램의 class파일을 BXI서버에 업로드한다. 업로드 위치는 시스템파라미터의 DYNAMIC_DEPLOY_PATH에 설정한 위치이며, 프로그램정보의 배포버튼을 통해 엔진 재기동없이 배포할 수 있다.
  • 동적배포 미사용 시 : bxi.extension-{version}.jar로 빌드해 엔진의 libs에 업로드한다. 이 때, 엔진을 반드시 재기동해야 한다.

bxi.extension구조

bxi.extension.customizing.common

공통 프로그램이나 Utility프로그램이 위치할 패키지. 또한, 커스터마이징 프로그램에서 내부적으로 사용할 VO가 정의된 모델이 저장될 패키지이다.

bxi.extension.customizing.constant

Constant값을 정의한 프로그램이 위치할 패키지.

bxi.extension.customizing.api

bxi.api-{version}.jar의 인터페이스를 구현한 소스가 위치하는 패키지. 예를 들어 bxi.api-{version}.jar에 표준전문 처리와 관련된 API가 정의된 StandardCreateMessage 파일이 있다면, 이 API를 구현한 소스는 bxi.extension.customizing.api에 저장한다.

bxi.extension.customizing.process

org.apache.camel.Processor API를 구현한 프로그램과 기타 사용자가 개발한 프로그램이 위치할 패키지

bxi.extension.customizing.router

인터페이스 처리를 위해 플로우에 추가할 라우터 프로그램이 위치할 패키지이다. 라우터 프로그램은 org.apache.camel.builder.RouteBuilder를 상속받아 구현한다.

개발주의사항

커스터마이징 프로그램에 다음과 같은 요소가 포함될 경우 정상 작동되지 않을 수 있으므로 개발할 때 제외하도록 한다.

  • @Slf4j를 통한 로깅
  • lambda를 사용하는 로직(예. Functional inferface)

추가적으로 java.lang.NoClassDefFoundError가 발생하면 해당하는 클래스의 재로딩 무시되어 동적배포가 이루어지지 않는다. 따라서 커스터마이징 프로그램 사용중에 NoClassDefFoundError가 발생하여 재배포가 필요할 경우 엔진을 재기동한 뒤에 배포를 수행하여야 한다.