【发布时间】:2021-06-03 03:09:49
【问题描述】:
我正在使用 Firebase-admin:7.1.0 通过我的服务器 (WSO2IS) 发送推送通知。 Java版本采用8.0.275。
我已按照文档https://firebase.google.com/docs/admin/setup#java 进行设置。 JSON 文件存在,环境变量被导出,FireBase 被初始化使用:
FirebaseOptions options =
FirebaseOptions.builder()
.setCredentials(GoogleCredentials.getApplicationDefault())
.build();
FirebaseApp.initializeApp(options);
当尝试使用以下方式发送推送通知时:
FirebaseMessaging.getInstance().send(message);
我得到以下异常:
java.lang.NullPointerException: Failed to load: admin_sdk.properties
at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:910)
at com.google.firebase.internal.SdkUtils.loadSdkVersion(SdkUtils.java:46)
at com.google.firebase.internal.SdkUtils.<clinit>(SdkUtils.java:31)
at com.google.firebase.messaging.FirebaseMessagingClientImpl.<clinit>(FirebaseMessagingClientImpl.java:65)
at com.google.firebase.messaging.FirebaseMessaging$6.get(FirebaseMessaging.java:414)
at com.google.firebase.messaging.FirebaseMessaging$6.get(FirebaseMessaging.java:411)
at com.google.common.base.Suppliers$NonSerializableMemoizingSupplier.get(Suppliers.java:167)
at com.google.firebase.messaging.FirebaseMessaging.getMessagingClient(FirebaseMessaging.java:296)
at com.google.firebase.messaging.FirebaseMessaging.sendOp(FirebaseMessaging.java:131)
at com.google.firebase.messaging.FirebaseMessaging.send(FirebaseMessaging.java:102)
at com.google.firebase.messaging.FirebaseMessaging.send(FirebaseMessaging.java:86)
找不到有关此故障的任何信息。有什么想法吗?
编辑: 首先,这是使用 maven 的 apache felix 插件集成到 OSGI 包中的。很可能,pom.xml 文件的配置是罪魁祸首..
关于 pom.xml 的一些信息如下:
<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-admin</artifactId>
<version>7.1.0</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
...
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>3.2.0</version>
<extensions>true</extensions>
<configuration>
<obrRepository>NONE</obrRepository>
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Bundle-Name>${project.artifactId}</Bundle-Name>
<Axis2Module>${project.artifactId}-${project.version}</Axis2Module>
<Import-Package>
com.google.firebase.*,
com.google.api.*,
com.google.auth.*,
*;resolution:=optional
</Import-Package>
<Export-Package>
com.google.firebase.*,
com.google.api.*,
com.google.auth.*;
</Export-Package>
</instructions>
</configuration>
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
</execution>
</executions>
</plugin>
编辑#2:
firebase 的依赖 jar 是 firebase-admin-7.1.0.jar,其中包含包 com.google.firebase、META-INF 文件夹和 admin_sdk.properties 文件。当然,当我导出包时 com.google.whatever 属性文件没有随包一起导出,这就是异常背后的原因。
那么,问题是,我如何确保属性文件包含在包中?
【问题讨论】:
标签: java maven firebase-cloud-messaging osgi firebase-admin