jBPM / Drools 개발환경 구성 방법에 따라 Eclipse에 jBPM/Drools 환경 구성 후 새로운 jBPM 프로젝트를 maven 기반으로 생성하고 실행하면 오류가 발생한다.
jBPM 프로젝트 생성 절차
-
File - New - jBPM project 선택
-
Example을 포함한 프로젝트 생성 선택; 두 번째 버튼
-
Build the Project using 항목에서 Maven 선택
-
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에도 버전이 낮은 같은 라이브러리들이 포함돼 있다.
해결법
아래 두 가지 방법 중 하나로 해결할 수 있다.
pom.xml에 포함된 낮은 버전의 라이브러리들 삭제
- pom.xml
- Dependencies 탭으로 이동
- kie-api, jbpm-text 두 항목 모두 삭제
jBPM Library를 Build Path에서 제거
- Project Explorer에서 jBPM Library 오른 클릭
- Build Path - Remove from Build Path 선택
이 경우에는 구버전인 7.0.0의 라이브러리를 사용하는데 다음과 같은 방법으로 변경할 수 있다.
- pom.xml
- Overview 탭에서 Properties에 포함된 runtime.version 값을 최신으로 변경
See Also