JinJava необнаруженное исключение из сервлета из-за лесопогрузчика

Пытаясь использовать JinJava на App-Engine, я получаю следующее исключение

Uncaught exception from servlet
java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
    at com.hubspot.jinjava.util.Logging.<clinit>(Logging.java:23)
    at com.hubspot.jinjava.lib.SimpleLibrary.register(SimpleLibrary.java:59)
    at com.hubspot.jinjava.lib.SimpleLibrary.registerClasses(SimpleLibrary.java:49)
    at com.hubspot.jinjava.lib.exptest.ExpTestLibrary.registerDefaults(ExpTestLibrary.java:13)
    at com.hubspot.jinjava.lib.SimpleLibrary.<init>(SimpleLibrary.java:34)
    at com.hubspot.jinjava.lib.exptest.ExpTestLibrary.<init>(ExpTestLibrary.java:8)
    at com.hubspot.jinjava.interpret.Context.<init>(Context.java:54)
    at com.hubspot.jinjava.interpret.Context.<init>(Context.java:47)
    at com.hubspot.jinjava.Jinjava.<init>(Jinjava.java:81)
    at com.hubspot.jinjava.Jinjava.<init>(Jinjava.java:71)

Мой appengin-web.xmlфайл уже поставляется с этим

<property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
        <!--I add these below -->
        <property name="java.util.logging.config.file"
                  value="WEB-INF/java-util-logging.properties"/>
        <property name="os.version" value="1.0.GAE whatever"/>
        <property name="os.arch" value="GAE whatever"/>
...

но это не имеет значения, если я комментирую эти строки

1 ответ

  1. Похоже, что jinjava использует slf4j для ведения журнала, и он не может найти классы в вашем classpath. Этот тип ошибки обычно означает, что отсутствуют jar зависимостей.

    При входе через slf4j на AppEngine нужны две зависимости:

    С maven зависимости могут выглядеть следующим образом

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.7</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-jdk14</artifactId>
            <version>1.7.8</version>
        </dependency>
    

    Но вы можете добавить slf4j-api и slf4j-jdk14 вручную. Просто скачайте их из вашего любимого jar-source и добавьте их в свой путь сборки.