Java.io.FileNotFoundException: /tomcat/lib/webservices-api.jar

Когда я пытаюсь развернуть свой файл war, я получаю сообщение об ошибке в catalina.out:

org.apache.tomcat.util.scan.StandardJarScanner.processURLs Failed to scan [file:/tomcat/lib/webservices-api.jar] from classloader hierarchy
     java.io.FileNotFoundException: //tomcat/lib/webservices-api.jar (No such file or directory)
...................
org.apache.tomcat.util.scan.StandardJarScanner.processURLs Failed to scan [file:/tomcat/lib/webservices-api.jar] from classloader hierarchy
     java.io.FileNotFoundException: /tomcat/lib/webservices-rt_l10n.jar (No such file or directory)

Но у меня есть webservices-api.jar В папке lib:

ls -l / tomcat / lib /:

//some libs
-rw-rw-r--+ 1 root   root   14830691 19  2017 webservices-rt-2.3.jar
-rw-r--r-- 1 tomcat tomcat   201290 апр 19 18:24 webservices-api-2.3.jar

Как я могу сказать tomсat, что он игнорирует версии и использует то, что есть? Также как отключить поиск языковых библиотек?

Обновлять:

Трассировки стека:

23-Apr-2018 14:16:59.481 WARNING [http-nio-8080-exec-46] org.apache.tomcat.util.scan.StandardJarScanner.processURLs Failed to scan [file:/tomcat/lib/webservices-api.jar] from classloader hierarchy
 java.io.FileNotFoundException: /tomcat/lib/webservices-api.jar (No such file or directory)
        at java.util.zip.ZipFile.open(Native Method)
        at java.util.zip.ZipFile.<init>(ZipFile.java:219)
        at java.util.zip.ZipFile.<init>(ZipFile.java:149)
        at java.util.jar.JarFile.<init>(JarFile.java:166)
        at java.util.jar.JarFile.<init>(JarFile.java:130)
        at org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:170)
        at org.apache.tomcat.util.scan.JarFileUrlJar.<init>(JarFileUrlJar.java:65)

Вы, вероятно, упаковываете фляги на своей войне, чего вам не следует делать.

rmlan 23.04.2018 15:03

Во-первых, опубликуйте всю трассировку стека. Во-вторых, действительно ли вы пытаетесь использовать какие-либо веб-службы на основе Java?

Christopher Schultz 23.04.2018 15:06

@rmlan, нет, мой pom.xml не содержит этих библиотек

All_Safe 23.04.2018 15:07

@ChristopherSchultz, я добавил stacktrace

All_Safe 23.04.2018 15:10

Можете ли вы добавить список каталогов вашего каталога WEB-INF / lib в свою войну?

rmlan 23.04.2018 15:14

Файл /tomcat/lib/webservices-api.jar существует? Может ли пользователь Tomcat прочитать этот файл и получить доступ (r+x) ко всем каталогам от корня файловой системы до этого файла?

Christopher Schultz 23.04.2018 15:21

@ChristopherSchultz, /tomcat/lib/webservices-api.jar exist -rw-r - r-- 1 tomcat tomcat 201290 19 апр, 18:24 webservices-api-2.3.jar. Tomcat имеет права доступа r + w root к этому файлу

All_Safe 23.04.2018 16:17
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
8
2 370
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

webservices-rt-xxx.jar содержит реализацию данной спецификации webservices-api.jar. Они не одинаковы!

Таким образом, вы также должны включить вторую банку в папку lib.

Tomcat на другом сервере работает корректно, если есть только webservices-api-2.3.jar. Подозреваю, дело в конкретных настройках

All_Safe 23.04.2018 15:25

@All_Safe В своем вопросе вы упомянули webservices-rt-2.3.jar, а не webservices-api-2.3.jar. Посмотрите, что возвращает ls -l /tomcat/lib/

C.Champagne 23.04.2018 15:29

C.Шампанское. Извини, я ошибся. webservices-api-2.3. файл также находится в папке

All_Safe 23.04.2018 16:20
Ответ принят как подходящий

В Tomcat 8.0.38 и более поздних версиях у нас есть один флаг, называемый scanManifest, для сканирования дополнительных записей пути к классам из MANIFEST.MF файлов jar. По умолчанию установлено значение true, т.е. сканировать манифест jar-файлов. Проверьте, есть ли у вас какой-либо jar с записью CLASS-PATH в MANIEST.MF, ссылающейся на этот файл jar. У меня аналогичная проблема

May 07, 2019 11:33:21 AM org.apache.tomcat.util.scan.StandardJarScanner processURLs
WARNING: Failed to scan [file:/C:/apache-tomcat-9.0.8/lib/jaxws-api.jar] from classloader hierarchy
java.io.FileNotFoundException: C:\apache-tomcat-9.0.8\lib\jaxws-api.jar (The system cannot find the file specified)

Обратил внимание на один из моих jar-файлов jaxws-rt-2.1.3 с jaxws-api.jar в качестве записи пути к классу. У меня есть jaxws-api-2.1.jar в моей библиотеке, поэтому jarscanner пожаловался, что файл не найден, поскольку он пытается найти его без имени версии.

** Добавление следующей записи в context.xml в TOMCAT_HOME / conf должно решить эту проблему, так как это остановит разрешение несуществующих файлов jar **

<JarScanner scanManifest = "false"/>

мы также можем исправить файл манифеста, чтобы включить версию jar, а затем развернуть приложение

добавление <JarScanner scanManifest = "false" /> в context.xml помогло. Большое спасибо!

Praveesh P 30.08.2019 11:26

Другие вопросы по теме