我正在学习使用Java进行修复,并尝试了Firebase官方站点https://firebase.google.com/docs/firestore/quickstart提供的示例代码
这是一个非常简单的代码
import com.google.auth.oauth2.GoogleCredentials; import
com.google.cloud.firestore.Firestore;
import com.google.firebase.FirebaseApp; import
com.google.firebase.FirebaseOptions;
// Use a service account InputStream serviceAccount = new
FileInputStream("path/to/serviceAccount.json"); GoogleCredentials
credentials = GoogleCredentials.fromStream(serviceAccount);
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(credentials) .build();
FirebaseApp.initializeApp(options);
Firestore db = FirestoreClient.getFirestore();在获取db对象时,我得到了一个错误
Caused by: java.io.IOException: java.lang.IllegalArgumentException: ALPN is not configured properly. See https://github.com/grpc/grpc-java/blob/master/SECURITY.md#troubleshooting for more information.
at com.google.cloud.firestore.spi.v1beta1.GrpcFirestoreRpc.<init>(GrpcFirestoreRpc.java:138)
at com.google.cloud.firestore.FirestoreOptions$DefaultFirestoreRpcFactory.create(FirestoreOptions.java:71)
... 15 more
Caused by: java.lang.IllegalArgumentException: ALPN is not configured properly. See https://github.com/grpc/grpc-java/blob/master/SECURITY.md#troubleshooting for more information.
at io.grpc.netty.GrpcSslContexts.selectApplicationProtocolConfig(GrpcSslContexts.java:163)
at io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:136)
at io.grpc.netty.GrpcSslContexts.configure(GrpcSslContexts.java:124)
at io.grpc.netty.GrpcSslContexts.forClient(GrpcSslContexts.java:94)
at io.grpc.netty.NettyChannelBuilder$NettyTransportFactory$DefaultNettyTransportCreationParamsFilterFactory.<init>(NettyChannelBuilder.java:546)
at io.grpc.netty.NettyChannelBuilder$NettyTransportFactory$DefaultNettyTransportCreationParamsFilterFactory.<init>(NettyChannelBuilder.java:539)
at io.grpc.netty.NettyChannelBuilder$NettyTransportFactory.<init>(NettyChannelBuilder.java:477)
at io.grpc.netty.NettyChannelBuilder.buildTransportFactory(NettyChannelBuilder.java:325)
at io.grpc.internal.AbstractManagedChannelImplBuilder.build(AbstractManagedChannelImplBuilder.java:342)
at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.createSingleChannel(InstantiatingGrpcChannelProvider.java:185)
at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.createChannel(InstantiatingGrpcChannelProvider.java:142)
at com.google.api.gax.grpc.InstantiatingGrpcChannelProvider.getTransportChannel(InstantiatingGrpcChannelProvider.java:134)
at com.google.api.gax.rpc.ClientContext.create(ClientContext.java:129)
at com.google.cloud.firestore.spi.v1beta1.GrpcFirestoreRpc.<init>(GrpcFirestoreRpc.java:124)
... 16 more
Caused by: java.lang.ClassNotFoundException: org/eclipse/jetty/alpn/ALPN
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at io.grpc.netty.JettyTlsUtil.isJettyAlpnConfigured(JettyTlsUtil.java:34)
at io.grpc.netty.GrpcSslContexts.selectApplicationProtocolConfig(GrpcSslContexts.java:153)
... 29 more
Process finished with exit code 1我的IDE是intellij,我正在运行它,org/eclipse/jetty/alpn/ALPN /ALPN在外部库下的类路径中可见。
alpn-api-1.1.3.v20160715.jar
ALPN有人遇到过类似的问题吗?
提前谢谢。
发布于 2018-01-25 20:43:58
我意识到我错误地生成了我的谷歌服务账户。我已经完成了修复文档并生成了正确的密钥。
发布于 2018-05-22 20:11:31
在我的FireStore项目中,我遇到了同样的问题:ALPN is not configured properly >java.lang.ClassNotFoundException: org/eclipse/jetty/alpn/ALPN。几个月前,项目运行良好,我对这个问题相当失望。
这一信息非常误导人,而且与我的情况的根本原因相去甚远。我试图使用Java x32运行项目,而netty-tcnative-boringssl-static (由grpc使用,由grpc使用)只有“x64”的实现(您可以在netty-tcnative-boringssl-static-2.0.8.Final.jar/META-INF/native/中检查受支持的本地用户)。在调试过程中,我发现问题的root cause被静默地抑制了,并且在加载'x86版本的netty_tcnative_windows_*.dll‘代码失败之后,尝试使用ALPN运行,但是这需要对项目启动进行额外的定制。
所以..。正确的问题是-不要在Jdk x32上运行修复项目。
https://stackoverflow.com/questions/48428536
复制相似问题