Java Firebase admin 与 Jersey 兼容吗?
Is Java Firebase admin compatible with Jersey?
让我更清楚地说明这一点。我已经使用 Java 8 in Tomcat 8 、firebase-admin 库版本 5.2.0、JSF 2.2、jersey-json 1.18.1 和 Jersey 1.14 设置了我的项目。
服务器启动时出现如下错误:
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.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 Admin lib 之间是否存在冲突?我该如何解决这个问题?
这不太可能是由 Firebase 和 Jersey 库之间的某些不兼容引起的。至少我不知道有这样的问题。泽西岛似乎直到 version 1.19 才添加 Java 8 支持。所以您可能想要升级您的 Jersey 版本(v1.14 大约有 5 年历史)。您也可以尝试摆脱 lambda 和任何其他 Java 8 语法,但它可能无法完全解决问题。
开发人员也有类似的报告,他们在获取 Java 8 代码(特别是 lambda 代码)与旧版本的 Jersey 一起工作时遇到问题。例如:Java 8 Lambda Expression Within REST Service not working
让我更清楚地说明这一点。我已经使用 Java 8 in Tomcat 8 、firebase-admin 库版本 5.2.0、JSF 2.2、jersey-json 1.18.1 和 Jersey 1.14 设置了我的项目。 服务器启动时出现如下错误:
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.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 Admin lib 之间是否存在冲突?我该如何解决这个问题?
这不太可能是由 Firebase 和 Jersey 库之间的某些不兼容引起的。至少我不知道有这样的问题。泽西岛似乎直到 version 1.19 才添加 Java 8 支持。所以您可能想要升级您的 Jersey 版本(v1.14 大约有 5 年历史)。您也可以尝试摆脱 lambda 和任何其他 Java 8 语法,但它可能无法完全解决问题。
开发人员也有类似的报告,他们在获取 Java 8 代码(特别是 lambda 代码)与旧版本的 Jersey 一起工作时遇到问题。例如:Java 8 Lambda Expression Within REST Service not working