java - Spring boot Firebase Admin SDK 在部署到 aws EC2 实例时失败
问题描述
我有一个集成了 Firebase Admin SDK 的 spring boot 应用程序。在我的本地开发环境中,一切正常。一旦我构建了一个 war 文件并将其部署到基于 AWS EC2 ubuntu 的实例,它就无法初始化。我将 serviceAccountKey.json 保存在资源文件夹中
@Service
public class FirebaseInitialization {
@PostConstruct
public void initialize() {
InputStream inputStream;
try {
inputStream = getClass().getResourceAsStream("/serviceAccountKey.json");
System.out.print(inputStream);
assert inputStream != null;
FirebaseOptions options = FirebaseOptions.builder()
.setCredentials(GoogleCredentials.fromStream(inputStream))
.setDatabaseUrl("https://example-default-rtdb.firebaseio.com")
.build();
FirebaseApp firebaseApp;
if(FirebaseApp.getApps().isEmpty()) { //<--- check with this line
firebaseApp = FirebaseApp.initializeApp(options);
}
System.out.print(firebaseApp.getName());
} catch (Exception e) {
e.printStackTrace();
e.getMessage();
}
}
}
以下堆栈被抛出
2021-11-16 12:56:04.542 INFO 85106 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 9 ms
2021-11-16 12:56:15.145 WARN 85106 --- [ebsocket-worker] io.netty.channel.ChannelInitializer:无法初始化通道。结束:[id:0x23ad1ad1]
io.netty.channel.ChannelPipelineException: io.netty.handler.ssl.SslHandler.handlerAdded() 已抛出异常;删除。在 io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:656) [core-3.4.8.jar:3.4.7] 在 io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:235) [core- 3.4.8.jar:3.4.7] 在 io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:409) [core-3.4.8.jar:3.4.7] 在 io.netty.channel.DefaultChannelPipeline.addLast (DefaultChannelPipeline.java:396) [core-3.4.8.jar:3.4.7] 在 com.google.firebase.database.connection.NettyWebSocketClient$1.initChannel(NettyWebSocketClient.java:101) [firebase-admin-8.1.0 .jar:na] 在 com.google.firebase.database.connection.NettyWebSocketClient$1.initChannel(NettyWebSocketClient.java:96) [firebase-admin-8.1.0.jar:na] 在 io.netty.channel。
2021-11-16 12:56:15.282 错误 85106 --- [ebsocket-worker] cgfdconnection.WebsocketConnection : [ws_0] WebSocket 错误
java.nio.channels.ClosedChannelException: null at io.netty.channel.AbstractChannel$AbstractUnsafe.ensureOpen(...)(Unknown Source) ~[core-3.4.8.jar:3.4.7]
我不知道我错过了什么,尝试了几个修复,但我没有得到任何工作。
解决方案
推荐阅读
- node.js - 发送大Json时NodeJS socket.IO断开连接
- c# - 只能采用某些类型的泛型类
- maxima - Maxima 中的规范形式
- ruby - 您的 Ruby 版本是 2.3.3,但您的 Gemfile 指定了 2.5.1
- html - 在不同的分辨率下改变 flexbox-direction
- java - 如何从 UDP 广播接收多个响应
- java - 升级到 Edgware.SR3 时没有 RsaProperties 类型的合格 bean
- xcode - 命中断言失败:(NSViewIsCurrentlyBuildingLayerTreeForDisplay() != currentBuildingLayerTree)
- url - 在报告运行后更改 SSRS 参数值。这可能吗?
- php - 使用 foreach 循环更新数据库行