@Varandey

Как разместить библиотеки в web приложении?

Как разместить библиотеки в web приложении?

Создал простейший сервлет в Intellij Idea.
В pom.xml прописал зависимости:

<dependencies>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.module</groupId>
      <artifactId>jackson-module-kotlin</artifactId>
      <version>2.12.0-rc1</version>
      <scope>provided</scope>
    </dependency>
...


Сервлет использует кое-какие классы из пакета com.fasterxml.jackson.module

Но при отправке запроса на поднятый томкат с этим сервлетом - получаю ошибку:
Root Cause

java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/ObjectMapper
LoaderService.(LoaderService.kt:11)
ParamListRetriever.(ParamListRetriever.kt:5)
MyServlet.(MyServlet.kt:11)
java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

Как сделать так, чтобы томкат увидел библиотеки?
  • Вопрос задан
  • 100 просмотров
Пригласить эксперта
Ответы на вопрос 1
xez
@xez Куратор тега Java
TL Junior Roo
Вариант 1 (плохой): у томката есть конфиг catalina.properties. Там можно указать папку для ваших библиотек shared.loader={ваша папка с библиотеками}
Вариант 2 (лучше): собирать war (или что там у вас) сразу со всеми библиотеками. Гуглите fat jar, jar-with-dependencies.
Вариант 3 (самый лучший, как по мне): отказаться от внешнего tomcat и исользовать embeded tomcat.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы