JinJava Uncaught исключение из сервлета из-за регистратора
Пытаясь использовать 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 ответ
Решение
Похоже, что jinjava использует slf4j для ведения журнала, и он не может найти классы в вашем classpath. Этот тип ошибки обычно означает, что вам не хватает фляг зависимостей.
При входе через 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-источника и добавьте их в путь сборки.