java.lang.NoSuchMethodError: 'byte[] org.apache.commons.codec.binary.Hex.decodeHex(java.lang.String)'
시그니처가 다른 같은 클래스가 두 벌 있을 때 나는 오류다. NiFi 는 NAR 마다 독립된 클래스 로더를 쓰지만, lib 디렉터리에 놓인 jar 는 전역 부모 클래스 로더에 올라가 모든 NAR 에 영향을 준다. 그래서 lib 에 직접 넣은 jar 하나가 전체 기동을 막을 수 있다.
같은 종류의 충돌이 Jetty 에서도 난다. NiFi 1.x 는 Jetty 9 계열, 2.x 는 Jetty 12 계열이라 두 버전의 jar 가 섞이면 메서드가 없다는 오류로 기동이 멈춘다. 2.x 를 시험해 본 뒤 1.x 로 되돌린 설치본에서 자주 나온다.
lib 와 lib/bootstrap 에 배포본에 없던 jar 가 있는지 본다. commons-codec · jetty-* 가 두 개 이상이면 그것이 원인이다.lib 가 아니라 NAR 로 패키징하거나 nifi.nar.library.directory.custom 이 가리키는 디렉터리에 둔다.bootstrap.conf 에 java.arg 로 -cp 나 -Xbootclasspath 를 덧붙인 것이 있으면 지운다.work/nar 디렉터리를 비우고 다시 띄운다. 이전 버전의 압축 해제 결과가 남아 있으면 옛 클래스가 그대로 쓰인다.conf 와 저장소만 옮긴다. 같은 디렉터리에 덮어쓰지 않는다.