Я пытаюсь настроить отправку уведомлений с сервера tomcat (Ubuntu 16.04) на android с помощью Firebase Cloud Messaging. Весь приведенный ниже код - это копия с официальных источников Firebase: https://firebase.google.com/docs/cloud-messaging/admin/send-messages и https://firebase.google.com/docs/admin/setup.
При выполнении этого:
ApiFuture<String> afs = fm.sendAsync(message);
участка кода вылетает ошибка:
23-Feb-2018 18:15:08.299 SEVERE [http-nio-8080-exec-2] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [YourWayServer] in context with path [/YourWayServer] threw exception [Servlet execution threw an exception] with root cause java.lang.NoSuchMethodError: com.google.firebase.messaging.FirebaseMessaging.sendAsync(Lcom/google/firebase/messaging/Message;)Lcom/google/api/core/ApiFuture
Сам код:
FileInputStream serviceAccount = new FileInputStream("*файл с ключом к Firebase");
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.setDatabaseUrl("https://your-way-admin.firebaseio.com/")
.build();
FirebaseApp.initializeApp(options);
Message message = Message.builder()
.setAndroidConfig(AndroidConfig.builder()
.setTtl(3600 * 1000) // 1 hour in milliseconds
.setPriority(AndroidConfig.Priority.NORMAL)
.setNotification(AndroidNotification.builder()
.setTitle("GOOG up 1.43% on the day")
.setBody("GOOG gained 11.80 points to close at 835.67, up 1.43% on the day.")
.setIcon("ic_launcher")
.setColor("#f45342")
.build())
.build())
.setTopic("industry-tech")
.build();
try {
FirebaseMessaging fm = FirebaseMessaging.getInstance();
ApiFuture<String> afs = fm.sendAsync(message);
notificationResponse = afs.get();
} catch (NoSuchMethodError e) {
this.getServletContext().log(e.getMessage());
for (StackTraceElement el : e.getStackTrace()) {
this.getServletContext().log(el.toString());
}
}
this.getServletContext().log(notificationResponse);
StackTrace:
at com.yourwayserver.YourWayServer.doPost(YourWayServer.java:468)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Подключенные библиотеки в каталоге WEB-INF/libs :
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Такая проблема Вызываю диалог открытия окон, выбираю файлы, получаю uri файлов Теперь мне нужно получить имя файла такое какое оно в телефоне...
Здарова Стак Овер Флововцы! Есть такая тема, мне нужно сделать программу на дроиде, которая будет компилить другие программыНапример: AIDE в гугл...
Я не пойму,с джавы мне грят поток это Thread но в андроиде я всё запутал ,прошу кто нибудь норм обьясните мне с примерами кто есть handler кто есть...
Огромная проблемаЕсть Java Restful web service построенный на jax-rs 2