OSにパッチを適用した後で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;
他の変更なしで、今このエラーに遭遇している理由を誰もが知っていますか?
これは、2日前にリリースされた8u161へのJDKのアップグレードに関連しているようです。
Cassandra Jira でチケットが開かれました
私が見つけることができる公開された回避策はありません。以前のバージョンのJDKに戻るか、Cassandra 3.11.2が問題を修正するまで待つ必要があります。
編集:これはリリースされた3.11.2で解決されたため、このバージョンにアップグレードして問題を解決できることを指摘しておく価値があります。
ソースをダウンロードして、変更したメソッドを追加し、変更したクラスをコンパイルしてApache-cassandra.jarに追加できます。次のことができます。
tar -xvf org.tar
を使用してファイルを展開すると、org
ディレクトリが取得されます。cp /usr/share/cassandra/Apache-cassandra-3.11.1.jar .
cp Apache-cassandra-3.11.1.jar Apache-cassandra-3.11.1.jar_backup
。Apache-cassandra-3.11.1.jar Apache-cassandra-3.11.1.jar_backup org org.tar
次のコマンドを実行して、jarを更新します。
jar uf Apache-cassandra-3.11.1.jar org
ファイルをインストール場所に置き換えます。
mv Apache-cassandra-3.11.1.jar /usr/share/cassandra
再起動cassandraサービス
Cask数式を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
提案されたURLとして行6のURLを変更する " http://127.0.0.1:3333/jdk-8u152-macosx-x64.dmg "、
brew cask再インストールJava8
動作するはずです。