#java #json #spring #spring-boot #application.properties
#java #json #spring #spring-boot #application.properties
Вопрос:
Я пытаюсь поместить файл JSON в свой код, но я всегда получал NULL при запуске отладчика :
package com.jacobtrashcompany.google;
import java.io.IOException;
import java.nio.file.Paths;
import javax.annotation.PostConstruct;
import com.google.api.client.util.Value;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.firebase.FirebaseApp;
import com.google.firebase.FirebaseOptions;
import com.google.firebase.database.core.Path;
import org.hibernate.annotations.common.util.impl.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import ch.qos.logback.classic.Logger;
@Service
@Component
public class FCMInitializer {
@Value("${app.firebase-configuration-file}")
private String firebaseConfigPath;
//Logger logger = LoggerFactory.getLogger(FCMInitializer.class);
@PostConstruct
public void initialize() {
// logged.info("Start init");
try {
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(
GoogleCredentials.fromStream(new ClassPathResource(firebaseConfigPath).getInputStream()))
.build();
if (FirebaseApp.getApps().isEmpty()) {
FirebaseApp.initializeApp(options);
}
} catch (final IOException e) {
System.out.print("**************************************************" e);
}
}
}
это мой FCMService :
package com.jacobtrashcompany.google;
import com.google.firebase.messaging.FirebaseMessaging;
import com.google.firebase.messaging.FirebaseMessagingException;
import com.google.firebase.messaging.Message;
import com.jacobtrashcompany.Model.PnsRequest;
import org.springframework.stereotype.Service;
@Service
public class FCMService {
public String pushNotification(PnsRequest pnsRequest) {
Message message = Message.builder()
.putData("content", pnsRequest.getContent())
.setToken(pnsRequest.getFcmToken())
.build();
String response = null;
try {
response = FirebaseMessaging.getInstance().send(message);
} catch (FirebaseMessagingException e) {
e.printStackTrace();
}
return response;
}
}
это мой PnsRequest :
package com.jacobtrashcompany.Model;
public class PnsRequest {
private String fcmToken;
private String content;
public String getFcmToken() {
return fcmToken;
}
public void setFcmToken(String fcmToken) {
this.fcmToken = fcmToken;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
это мой путь к файлу json «я использую Linux»
app.firebase-configuration-file=/home/okba/Documents/webServer/src/main/resources/JSON/notificationpush-94201-firebase-adminsdk-hqxpf-b21a6f50b9.json
и это мой файл JSON :
{
"type": "service_account",
"project_id": "notificationpush-94201",
"private_key_id": "34d0d55f8b0ee63889f9e225d087c6170d016c",
"private_key": "-----BEGIN PRIVATE KEY-----nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCUJf9C1vWSqI67nn7a/mzPJMbXzBrK9gN2xdU2j6a26FQvYvnWnkVMmyLDNEXWLh6adxjTnPrfKuvDbn5y60nwWKAd7i4U3iZnt53kDvS5Za9R3S/8VQ0DBen7npCrkM3gEjehBE6xd04TMvnxDDHdDiMQbMNQEuxsKBtAeBKv8vTK21tJCUh4/XPcqK/FWqIPKJOIVdeKge6PUbWnknKPj/OISaWjXn 6gs fB6v0NKtnQoZ87XWmzTr6dK72fx5EN7IdlKrIunF7f3jP6YyOcHc7Gk/DByNBz3sF1vRXwd7up/kDuWahMNjBtFvTvuK4cbU5f1s8 knu0FmLKE/AgMBAAECggEABUcomxorFpCrFnPKtXR95FGWkLQbjb/NEM5D4q6SZ2TqnOUxpHFFY8TKeMI102XCO7DkMV8lhZTdtbvrYrEusDVjNYYTdsE6utc6daUkRRWf3n1OAS3ghaE3eaTntOJhoKAq24bal4ekwESv6GLweXdNEUZB5MdBCoWSnYx/ZMTddvnhaVdIuNHUxXELKLl4EeV92InT1EQZpzzZrkPe9MVJcOT3ckk97nDeIGAVvs k5mpri5sSsePvIvO5zJZJ11A5QySO9mJm1t7ejYNMghwI S1 UXCJuDnmqcsg9MJ7HRQgSc3sIiswQ4/MiAkIWCAcsG9NjEVTQKBgQDHpNBsvnrYGv9vGyrJng8rSCMdRKaZh2Twv06RL4CBJ/2pkutK8kUHqEqT CYQ3BfMYS4Jc6fwdmcOmWcRnn2H/SL zahxp0PJ/vLFlEzsp /voUoXK//LZ3oJkBv5SO6Ut FnEOOB X0MH8SVBvn0/qCY8P4hTxddbVhJUGE3pIIZQKBgQC99 NurhsLbXbF881oVI7R1LxUcQpUdMttnhUejTe868UqvooNhbQ2Q14Wv88fGPzSQdBLBFxkKa6H2Nv05i0kcsSL3h/g/oTQEn9CAC3poj4nAtrSHqcYqTFIamZaxFMOycX4X A1O4raMDZlEtWD8s6lxrOM0 5uqon 5u6vxZ 0wKBgEQqoUPQEg/BwB/GrehaiKEIgE3VI8tbKjLGV93UbBH4FPLJ23SpnQFFVBmL7CtrivCs6dQuWlQ/iVaxyEB7JDHPPC1deNAkmPhGjGePlm7ybAPaUXaLxn/beA7V1sdaQKQk2OChIp1Ze3ntSuj7lvLqTgvaQYkhDzRPgjiWh9um0FAoGAAfQknsKS1vn5XtF13hVUpStsnPK8U7h1tYij2vaU1iqOkov3G4B g/hZZV5/oNA WKX4n82draIIG3mNeY1MdY2Am/ei2EuFziYGBOsZTS38urCmVqbWVOUICyH9PMD76j/kjnhaM/Hy0Z hT5TMAVlj6qyKeC5Ny3GRnNVjRU5OUCgYACufDTrmnYMslFGVBxQbXZnvtcfAkl44RoNY3RnMULyNt6JICq7Y0yiot6Foe21wvU/53oVASwqolca8nYu 498uHQBMJGPWxAk5FJVPlHGG55S3bE zkOeyEsU/ByFz/nle/O9nhyMsUeB4VnvPFDq/E10SEfcLUxfVrX4Q==n-----END PRIVATE KEY-----n",
"client_email": "firebase-adminsdk-hqxpf@notificationpush-94201.iam.gserviceaccount.com",
"client_id": "115179550548917479389",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-hqxpf@notificationpush-94201.iam.gserviceaccount.com"
}
мой файл JSON находится внутри src/main/resources/JSON/otificationpush-94201-firebase-adminsdk-hqxpf-b21a6f50b9.json
в моем проекте, посмотрите на картинки, пожалуйста
введите описание изображения здесь
введите описание изображения здесь
итак, это все мои данные о моем сервере! все, что я хочу, чтобы отправить уведомление из моего серверной части в мое приложение для Android.
Ответ №1:
Вы не отметили FCMInitializer
с @Component
. Это означает, что ваш класс не является управляемым компонентом. Что означает, что @Value()
не будет работать!
Комментарии:
1. куда именно я могу добавить @Component?
2. @pitcho Документация отвечает на это docs.spring.io/spring-framework/docs/current/javadoc-api/org /…
3. хорошо, я добавляю его над классом, но все равно firebaseConfigPath : Null !!
4. @pitcho в этом случае вам может потребоваться добавить больше деталей к вашему вопросу. Пожалуйста, предоставьте минимальный проверяемый пример кода
5. @Prashant emm любая помощь?
Ответ №2:
я исправил проблему: из
app.firebase-configuration-file=/home/okba/Documents/webServer/src/main/resources/JSON/notificationpush-94201-firebase-adminsdk-hqxpf-b21a6f50b9.json
Для
app.firebase-configuration-file=JSON/notificationpush-94201-firebase-adminsdk-hqxpf-b21a6f50b9.json