App Engine — ошибка ограниченного класса LoggerFactory при использовании Firebase в Java

Я создаю серверную часть для своего приложения для Android с помощью Google App Engine. Я делаю что-то очень простое, а именно инициализирую свой Firebase Admin SDK, следуя инструкциям здесь - https://firebase.google.com/docs/admin/setup.

Когда я делаю это и запускаю, я получаю следующую ошибку:

java.lang.NoClassDefFoundError: org.slf4j.LoggerFactory — это ограниченный класс. Дополнительные сведения см. в руководстве разработчика Google App Engine. на com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:52) на com.google.firebase.internal.FirebaseThreadManagers.(FirebaseThreadManagers.java:37) на com.google.firebase. FirebaseOptions$Builder.(FirebaseOptions.java:147) в com.example.app.myapplication.backend.MyServlet.doGet(MyServlet.java:34)

Вот мой сервлет, который отлично работает без дополнений Firebase. Ошибка возникает в FirebaseOptions:

    public class MyServlet extends HttpServlet {

    @Override
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws IOException {
        resp.setContentType("text/plain");
        resp.getWriter().println("Please use the form to POST to this url");


        FileInputStream serviceAccount =
                new FileInputStream("WEB-INF/MyAppServiceKey.json");

        FirebaseOptions options = new FirebaseOptions.Builder()
                .setCredential(FirebaseCredentials.fromCertificate(serviceAccount))
                .setDatabaseUrl("https://MyApp.firebaseio.com")
                .build();

        FirebaseApp.initializeApp(options);
    }

    @Override
    public void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws IOException {
        String name = req.getParameter("name");
        resp.setContentType("text/plain");
        if (name == null) {
            resp.getWriter().println("Please enter a name");
        }
        resp.getWriter().println("Hello " + name);
    }
}

Вот мой build.gradle для бэкенда:

    buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.google.appengine:gradle-appengine-plugin:1.9.42'
    }
}

repositories {
    jcenter();
}

apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'appengine'

sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7

dependencies {
    appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.42'
    compile 'javax.servlet:servlet-api:2.5'
    compile 'com.google.firebase:firebase-admin:5.5.0'

}

appengine {
    downloadSdk = true
    appcfg {
        oauth2 = true
    }
}

comment
Никогда не видел эту проблему перед собой. Но выглядит так же, как stackoverflow.com/questions/18490366/   -  person Hiranya Jayathilaka    schedule 05.12.2017
comment
Я не следовал решению, указанному в этом вопросе, я даже воссоздал модуль в Android Studio, и все было так же. Кажется, работает нормально, используя Intellij Idea, как ни странно   -  person PSLDev    schedule 06.12.2017