Lorsque j'essaie de démarrer Cassandra après avoir corrigé mon système d'exploitation, le message d'erreur suivant s'affiche:
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;
Est-ce que quelqu'un sait pourquoi, sans autre changement, je rencontre cette erreur maintenant?
Cela semble être lié à une mise à niveau du JDK vers 8u161 qui a été publiée il y a 2 jours.
Un billet a été ouvert sur le Cassandra Jira
Je ne trouve aucune solution de contournement publiée. Vous devrez peut-être revenir à une version antérieure du JDK ou attendre Cassandra 3.11.2 qui corrige le problème.
Edit: Il est intéressant de noter que cela a maintenant été résolu dans la version 3.11.2, vous pouvez donc simplement passer à cette version pour résoudre le problème.
Pour que Cassandra fonctionne, je devais installer JDK 8u152. Utiliser brew cask install Java8
ce n’était pas possible. J'ai essayé d'utiliser une ancienne version de la formule cassandra.rb
mais cela vient de recevoir:
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
Je devais y aller et me connecter pour pouvoir télécharger DMG: http://www.Oracle.com/technetwork/Java/javase/downloads/Java-archive-javase8-2177648.html
Protip: Pour pouvoir toujours installer Java8 avec homebrew, j'ai téléchargé moi-même le dmg et lancé un serveur dans le répertoire de téléchargement:
cd ~/Downloads
php -S 0.0.0.0:3333
Et changé l'URL de téléchargement (ligne 6) dans la formule en:
url "http://0.0.0.0:3333/jdk-8u152-macosx-x64.dmg",
Puis j'ai pu courir:
brew cask install Java8
Maintenant, Cassandra court à nouveau.
Vous pouvez télécharger le source et ajouter la méthode modifiée, compiler et ajouter la classe modifiée à Apache-cassandra.jar. Vous pouvez faire ce qui suit:
tar -xvf org.tar
et vous devriez obtenir le répertoire 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
Exécutez la commande suivante pour mettre à jour le fichier JAR:
jar uf Apache-cassandra-3.11.1.jar org
Remplacez le fichier à l'emplacement d'installation:
mv Apache-cassandra-3.11.1.jar /usr/share/cassandra
Redémarrer le service de cassandra
Rétablir la formule Cask à la version 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
changez l’URL de la ligne 6 comme suggéré url " http://127.0.0.1:3333/jdk-8u152-macosx-x64.dmg ",
bière brassée réinstaller Java8
devrait marcher.