2017-07-11 2 views
0

Laissez-moi clarifier cela. J'ai configuré mon projet avec Java 8 dans Tomcat 8, la version 5.2.0 de la bibliothèque firebase-admin, JSF 2.2, jersey-json 1.18.1 et Jersey 1.14. Au démarrage du serveur j'ai eu une erreur comme ci-dessous:L'administrateur de Java Firebase est-il compatible avec Jersey?

jul 11, 2017 5:23:47 PM org.apache.catalina.core.StandardContext loadOnStartup 
GRAVE: Servlet [Jersey Web Application] in web application [/core-web-app] threw load() exception 
java.lang.ArrayIndexOutOfBoundsException: 2560 
    at org.objectweb.asm.ClassReader.accept(Unknown Source) 
    at org.objectweb.asm.ClassReader.accept(Unknown Source) 
    at com.sun.jersey.spi.scanning.AnnotationScannerListener.onProcess(AnnotationScannerListener.java:136) 
    at com.sun.jersey.spi.scanning.servlet.WebAppResourcesScanner$2.f(WebAppResourcesScanner.java:104) 
    at com.sun.jersey.core.util.Closing.f(Closing.java:71) 


I realized that this error takes places when i Have the folowing code in my class: 



Task<UserRecord> task = FirebaseAuth.getInstance().createUser(request) 
       .addOnSuccessListener(userRecord -> { 

        System.out.println("Successfully created new user: " + userRecord.getUid()); 
        try { 

        createLocalAccount(account, userRecord.getUid()); 

       } catch (Exception exception) { 

        exception.printStackTrace(); 
       } 
       }) 
       .addOnFailureListener(e -> { 
        System.err.println("Error creating new user: " + e.getMessage()); 

       }); 

Si le code est supprimé ci-dessus aucune erreur est affiché dans le démarrage du serveur. Y at-il un conflit entre Jersey et Firebase Admin lib? Comment pourrais-je résoudre ce problème?

Répondre

1

Il est peu probable que cela ait été causé par une incompatibilité entre les bibliothèques Firebase et Jersey. Au moins, je ne suis pas au courant d'un tel problème. Il semble que Jersey n'a pas ajouté de support Java 8 jusqu'à version 1.19. Donc, vous pourriez vouloir mettre à jour votre version de Jersey (v1.14 a environ 5 ans). Vous pouvez également essayer de vous débarrasser des lambdas et de toute autre syntaxe Java 8, mais cela pourrait ne pas résoudre entièrement le problème.

Il existe des rapports similaires de développeurs qui ont eu des problèmes pour obtenir le code Java 8 (en particulier lambda) fonctionnant avec des versions plus anciennes de Jersey. Par exemple: Java 8 Lambda Expression Within REST Service not working

+0

Merci, Hiranya. J'ai mis à jour à Jersey 2 et il semble être maintenant bien. – blackjack