Не удается запустить Cassandra после исправления ОС

когда я пытаюсь запустить Cassandra после исправления моей ОС, я получаю эту ошибку:

Exception (java.lang.AbstractMethodError) encountered during startup: org.apache.cassandra.utils.JMXServerUtils$Exporter.exportObject(Ljava/rmi/Remote;ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;Lsun/misc/ObjectInputFilter;)Ljava/rmi/Remote;

java.lang.AbstractMethodError: org.apache.cassandra.utils.JMXServerUtils$Exporter.exportObject(Ljava/rmi/Remote;ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;Lsun/misc/ObjectInputFilter;)Ljava/rmi/Remote;
        at javax.management.remote.rmi.RMIJRMPServerImpl.export(RMIJRMPServerImpl.java:150)
        at javax.management.remote.rmi.RMIJRMPServerImpl.export(RMIJRMPServerImpl.java:135)
        at javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.java:405)
        at org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:104)
        at org.apache.cassandra.service.CassandraDaemon.maybeInitJmx(CassandraDaemon.java:143)
        at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:188)
        at com.datastax.bdp.server.DseDaemon.setup(DseDaemon.java:476)
        at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:59
        at com.datastax.bdp.DseModule.main(DseModule.java:93)
ERROR [main] 2018-01-17 13:18:03,330  CassandraDaemon.java:705 - Exception encountered during startup
java.lang.AbstractMethodError: org.apache.cassandra.utils.JMXServerUtils$Exporter.exportObject(Ljava/rmi/Remote;ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;Lsun/misc/ObjectInputFilter;)Ljava/rmi/Remote;

кто-нибудь знает, почему, без каких-либо других изменений, я сталкиваюсь с этой ошибкой сейчас?

4 ответов


Это, похоже, связано с обновлением JDK до 8u161, которое было выпущено 2 дня назад.

билет был открыт на Кассандра Джира

нет опубликованной работы, которую я могу найти. Возможно, вам придется вернуться к более ранней версии JDK или дождаться Cassandra 3.11.2, которая устраняет проблему.

Edit: стоит отметить, что теперь это было разрешено в 3.11.2, который был выпущен, так что вы можете просто обновить до эта версия для решения проблемы.


чтобы запустить Кассандру, мне пришлось установить JDK 8u152. Используя brew cask install java8 не удалось. Я попытался использовать старая версия cassandra.rb формула но так:

Error: Download failed on Cask 'java8' with message: Download failed: http://download.oracle.com/otn-pub/java/jdk/8u152-b16/aa0333dd3019491ca4f6ddbe78cdb6d0/jdk-8u152-macosx-x64.dmg

Я должен был пойти сюда и войти в систему, чтобы иметь возможность загрузить DMG: http://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html

Protip: чтобы все еще иметь возможность установить java8 с помощью homebrew, я сам загрузил dmg и начал сервера в папку "Загрузки":

cd ~/Downloads
php -S 0.0.0.0:3333

и изменил URL загрузки (строка 6) в формуле на:

url "http://0.0.0.0:3333/jdk-8u152-macosx-x64.dmg",

затем смог запустить:

brew cask install java8

теперь Кассандра снова работает.


вы можете загрузить источник и добавить измененный метод, скомпилировать и добавить измененный класс в apache-cassandra.сосуд. Вы можете сделать следующее:

  1. скачать org.тар!--12--> содержащий единственный класс, подлежащий замене.
  2. распакуйте файл с помощью tar -xvf org.tar и вы должны получить org каталог
  3. скопируйте файл jar apache-cassandra. например,cp /usr/share/cassandra/apache-cassandra-3.11.1.jar .
  4. сделайте резервную копию банки перед обновлением. cp apache-cassandra-3.11.1.jar apache-cassandra-3.11.1.jar_backup.
  5. ждет текущий каталог содержит следующие файлы: apache-cassandra-3.11.1.jar apache-cassandra-3.11.1.jar_backup org org.tar
  6. выполните следующую команду для обновления jar:

    jar uf apache-cassandra-3.11.1.jar org

  7. замените файл на место установки:

    mv apache-cassandra-3.11.1.jar /usr/share/cassandra

  8. перезапустите службу cassandra


вернуть формулу бочки к версии 2017.

wget https://github.com/caskroom/homebrew-versions/blob/a98da98a7e4d87e9b614b3aa25af9c6c21a753c6/Casks/java8.rb -O /usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask/Casks/java8.rb

изменить строку 6 URL, как предложено URL-адресу "http://127.0.0.1:3333/jdk-8u152-macosx-x64.dmg",

заварить бочку переустановить java8

должны работать.