2017-08-10 5 views
0

Je suis en train de créer le programme SpellChecker par api, voici mon codejava.lang.ClassCastException: org.apache.logging.slf4j.SLF4JLoggerContext ne peut pas être jeté à org.apache.logging.log4j.core.LoggerContext

SpellCheck.java

package com.spell; 

import org.xeustechnologies.googleapi.spelling.SpellChecker; 
import org.xeustechnologies.googleapi.spelling.SpellCorrection; 
import org.xeustechnologies.googleapi.spelling.SpellResponse; 

public class SpellCheck { 

    public static void main(String[] args) 
    { 

     SpellChecker checker = new SpellChecker(); 

     SpellResponse spellResponse = checker.check("helloo worlrd"); 

     for(SpellCorrection sc : spellResponse.getCorrections()) 
      System.out.println(sc.getValue()); 

    } 
} 

dépendances

enter image description here

enter image description here

Erreur je suis arrivé après avoir fait rouler:

Exception in thread "main" java.lang.ExceptionInInitializerError at com.spell.SpellCheck.main(SpellCheck.java:12) Caused by: java.lang.ClassCastException: org.apache.logging.slf4j.SLF4JLoggerContext cannot be cast to org.apache.logging.log4j.core.LoggerContext at org.apache.log4j.Logger$PrivateManager.getContext(Logger.java:59) at org.apache.log4j.Logger.getLogger(Logger.java:41) at org.xeustechnologies.googleapi.spelling.SpellChecker.(SpellChecker.java:50) ... 1 more

+0

Cela semble être un bogue dans l'API 'org.xeustechnologies.googleapi.spelling.SpellChecker'. – paper1111

Répondre

0

Il ressemble org.xeustechnologies.google.api.spelling.SpellChecker utilise log4j et que vous utilisez slf4j. Essayez d'ajouter log4j-over-slf4j au classpath pour relier log4 pour utiliser slf4j.

+0

Après avoir enlevé tous les bocaux log4j, j'ai ajouté seulement 2 jars (vérificateur d'api-orthographe, log4j-sur-slf4j-1.7) mais après avoir exécuté le programme j'ai eu ces erreurs: –

+0

Exception dans le fil "principal" java.lang.NoClassDefFoundError : org/slf4j/MarkerFactory \t à org.apache.log4j.Catégorie. (Category.java:53) \t à org.xeustechnologies.googleapi.spelling.SpellChecker. (SpellChecker.java:50) \t à com.spell.SpellCheck.main (SpellCheck.java:12) Causée par: java.lang.ClassNotFoundException: org.slf4j.MarkerFactory \t à java.net.URLClassLoader $ 1.run (Source inconnue) \t à 1.run java.net.URLClassLoader $ (Source inconnue) \t à java.security.AccessController.doPrivileged (native Method) \t à java.net.URLClassLoader.findClass (Source inconnue) –

+0

Ressemble vous n'avez pas l'API slf4j sur votre chemin de classe. Ajouter slf4j-api.jar. –