jBPM Maven Sample 오류 해결

jBPM maven sample project 오류 해결 방법

jBPM / Drools 개발환경 구성 방법에 따라 Eclipse에 jBPM/Drools 환경 구성 후 새로운 jBPM 프로젝트를 maven 기반으로 생성하고 실행하면 오류가 발생한다.

jBPM 프로젝트 생성 절차

  1. File - New - jBPM project 선택

  2. Example을 포함한 프로젝트 생성 선택; 두 번째 버튼 error_01

  3. Build the Project using 항목에서 Maven 선택 error_02

  4. Add a simple hello world process 선택한 상태로 프로젝트 생성

오류

위와 같이 생성한 프로젝트를 실행하면 다음과 같은 오류가 발생한다.

Exception in thread "main" java.lang.NoSuchMethodError: org.jbpm.test.JBPMHelper.setupDataSource()Lbitronix/tm/resource/jdbc/PoolingDataSource;
	at com.sample.ProcessMain.createRuntimeManager(ProcessMain.java:34)
	at com.sample.ProcessMain.main(ProcessMain.java:23)

원인

오류 내용으로는 짐작하기 어렵게도, 원인은 버전이 다른 라이브러리들이 포함돼 있는 것이다.

개발 환경을 구성할 때 jBPM 런타임도 설치/설정했기 때문에 새로운 jBPM 프로젝트를 만들면 Eclipse는 자동으로 jBPM Library를 포함시킨다. 그런데 샘플 프로젝트의 pom.xml에도 버전이 낮은 같은 라이브러리들이 포함돼 있다.

Maven Dependencies와 jBPM Library에는 버전이 다른 라이브러리들이 포함돼 있다.

Project Explorer

Maven Dependencies와 jBPM Library에는 버전이 다른 라이브러리들이 포함돼 있다.

해결법

아래 두 가지 방법 중 하나로 해결할 수 있다.

pom.xml에 포함된 낮은 버전의 라이브러리들 삭제

  1. pom.xml
  2. Dependencies 탭으로 이동
  3. kie-api, jbpm-text 두 항목 모두 삭제

jBPM Library를 Build Path에서 제거

  1. Project Explorer에서 jBPM Library 오른 클릭
  2. Build Path - Remove from Build Path 선택

이 경우에는 구버전인 7.0.0의 라이브러리를 사용하는데 다음과 같은 방법으로 변경할 수 있다.

  1. pom.xml
  2. Overview 탭에서 Properties에 포함된 runtime.version 값을 최신으로 변경