java - Java Firebase 管理与 Jersey 兼容吗?

标签 java jersey tomcat8 firebase-admin

让我更清楚地说明这一点。我已经在 Tomcat 8 、firebase-admin 库版本 5.2.0、JSF 2.2、jersey-json 1.18.1 和 Jersey 1.14 中使用 Java 8 设置了我的项目。 服务器启动时出现一些错误,如下所示:

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());

                });

如果删除上面的代码,服务器启动时不会显示错误。 Jersey 和 Firebase 管理库之间是否存在冲突?我该如何解决这个问题?

最佳答案

这不太可能是由 Firebase 和 Jersey 库之间的某些不兼容引起的。至少我还没有意识到这样的问题。看来 Jersey 直到 version 1.19 才添加 Java 8 支持。因此,您可能需要升级 Jersey 版本(v1.14 已有 5 年左右的历史)。您还可以尝试摆脱 lambda 和任何其他 Java 8 语法,但这可能无法完全解决问题。

开发人员也有类似的报告,他们在使用旧版本的 Jersey 获取 Java 8 代码(特别是 lambda)时遇到问题。例如:Java 8 Lambda Expression Within REST Service not working

关于java - Java Firebase 管理与 Jersey 兼容吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45044012/

相关文章:

java - 每个使用 Log4j 的用户都有不同的日志

Java BlockingQueue<Runnable> 不可转换类型

java - 文件上传端点需要关闭InputStream吗?

java - Hibernate 一对多到 JSON 给出 : 500 internal server error

java - 如何使用 JMX 获取 Tomcat 上传/下载速度

java - 如何解释分析结果?

Java REST多节点API设计

java - Jersey:当类同时具有 JAX-RS 和 JAX-WS 注释时出错

java - 使用 JMX 停止 Apache Tomcat

windows - tomcat 已安装具有给定服务名称的服务