java.lang.NoSuchMethodError: org.apache.commons.compress.utils.IOUtils.readFully (Ljava/nio/channels/ReadableByteChannel; Ljava/nio/ByteBuffer;)

Я использовал apache commons-compress-1.15.jar и работал над инструментом mirth connect, и хотя метод был найден в java-файле IOUtils.java, все еще выдавал эту ошибку в mirth tool readFully (ReadableByteChannel, ByteBuffer) не найден. Пожалуйста, помогите мне с этой ошибкой.

Спасибо.


person Phani Sai Ram    schedule 19.01.2018    source источник
comment
Обычно это происходит, когда вы запускаете версию библиотеки, отличную от той, которая использовалась для компиляции.   -  person Henry    schedule 19.01.2018
comment
@ Генри, спасибо за ответ, объясните на примере. Я не совсем разобрался с версиями. Пожалуйста, уточните, я использовал jdk 1.8, а версия mirth connect — 3.5.1. Пожалуйста, уточните на примере. Спасибо.   -  person Phani Sai Ram    schedule 20.01.2018


Ответы (2)


Мирт уже использует компрессную банку. Вы можете найти версию компрессии Commons, которую использует mirth, по пути ниже.

  • {Место установки Мирта/server-lib/commons/commons-compress-{версия}.jar
  • {Место установки Мирта/client-lib/commons-compress-{версия}.jar
person KevalP    schedule 19.03.2021

Вероятно, вы используете не commons-compress-1.15.jar, а более старую версию, потому что метод a> был введен с версии 1.15.

person Kohei TAMURA    schedule 23.01.2018
comment
Привет, @KoheiTAMURA, я использовал common-compress-1.15.jar и могу найти метод readFully(ReadableByteChannel, ByteBuffer) в файле IOUtils.java, но, тем не менее, он возвращал NoSuchMethodError, когда я запускал его в инструменте mirth connect. - person Phani Sai Ram; 23.01.2018
comment
Если возможно, вы также можете извлечь и декомпилировать IOUtils в common-compress-1.15.jar, чтобы проверить, есть ли метод в декомпилированном IOUtils.java. - person Kohei TAMURA; 24.01.2018
comment
Я могу убедиться, что в IOUtils.java в common-compress-1.15.jar есть метод readFully(ReadableByteChannel, ByteBuffer). Он работает хорошо и генерирует выходные данные в NetBeans или eclipse, но когда он был преобразован в один файл jar и запущен в инструменте mirth connect, он выдает NoSuchMethodError - readFully(ReadableByteChannel, ByteBuffer) в IOUtils.java. - person Phani Sai Ram; 24.01.2018
comment
Возможно, инструмент mirth connect вызывает другой org.apache.commons.compress.utils.IOUtils не в common-compress-1.15.jar. - person Kohei TAMURA; 25.01.2018
comment
Существует только одна версия общего файла jar сжатия: .... common-compress-1.15.jar, никакие другие версии не включены, и как он может отклоняться от потока? Когда я запускаю приложение в любом IDE, таком как NetBeans и Eclipse, оно действительно работает хорошо и генерирует выходные данные. Но в случае mirth connect при предоставлении всего java-приложения в виде файла jar и попытке развернуть канал в Mirth Connect. Затем он выдает NoSuchMethodError-readFully(ReadableByteChannel, ByteBuffer), даже если этот метод существует внутри файла jar. Спасибо. - person Phani Sai Ram; 25.01.2018