Определенные библиотеки вызывают сбой развертывания Tomcat - PullRequest
0 голосов
/ 09 февраля 2020

Я только изучаю Tomcat и успешно развернул простую тестовую WAR на сервере Tomcat. Однако, когда я пытаюсь добавить библиотеку через Maven, JarScanner Tomcat не может загрузить файлы классов для моей программы, говоря, что ничего не может найти

09-Feb-2020 05:36:42.568 INFO [http-nio-80-exec-8] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/opt/tomcat/apache-tomcat-9.0.30/webapps/api.war]
09-Feb-2020 05:36:42.668 FINE [http-nio-80-exec-8] org.apache.jasper.servlet.TldScanner.scanResourcePaths No TLD files were found in resource path [/WEB-INF/].
09-Feb-2020 05:36:42.686 INFO [http-nio-80-exec-8] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/opt/tomcat/apache-tomcat-9.0.30/webapps/api.war] has finished in [117] ms

Однако, если я удаляю библиотеку из pom . xml (и, следовательно, из WAR), он загружается нормально. Вот загружаемые библиотеки:

  • JDA
  • Trove4J
  • jsr305
  • opus- java
  • opus- java -нативы
  • opus- java -api
  • jna
  • аннотации
  • охтп
  • commons-collection4
  • nv-websocket-client
  • slf4j-api
  • jackson-databind
  • jackson-аннотации
  • jackson-core

Кроме того, я уже пытался сказать JARScanner не сканировать никакие файлы JAR, как в контексте. xml, так и в catalina.properties.

tomcat.util.scan.StandardJarScanFilter.jarsToSkip=\
*.jar
<JarScanner scanClassPath="false" scanAllDirectories="false" scanManifest="false" scanAllFiles="false"/>

Ни один из них не имеет привело к развертыванию работы. Если я не исключаю основную библиотеку (JDA), то Tomcat сообщает об исключении ArrayIndexOutOfBounds. Сервер работает на Tomcat 9 на JDK 8, как и моя IDE.

1 Ответ

0 голосов
/ 09 февраля 2020

Из вашего фрагмента журнала - не похоже, что WAR не был развернут, на самом деле это было (см. Третью строку): Deployment of web application archive [/opt/tomcat/apache-tomcat-9.0.30/webapps/api.war] has finished in [117] ms

Попробуйте сравнить этот вывод с выводом из ВОЙНА, которую вы считаете «развернутой», и есть вероятность, что вы увидите то же сообщение (у меня сейчас нет кота, чтобы проверить это на моей машине, но это мое предположение).

вторая строка: No TLD files were found in resource path... в основном означает, что в WAR нет файлов TLD, что, конечно, не означает, что в войне есть ошибки ...

TLD означает дескриптор библиотеки тегов - его значение JSP теги, которые не являются обязательным компонентом в веб-архивах.

См. Здесь некоторая информация о TLD

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...