La mise à niveau de Tomcat 8.0.39 à 8.0.41 des résultats en "échec de scan' erreurs

J'ai un Ressort de Démarrage de la GUERRE application fonctionnant parfaitement sous Tomcat 8.0.39 sur AWS. Après l'émission de sudo service tomcat8 stop, la mise à niveau vers Tomcat 8.0.41 par sudo yum update, et le redémarrage de l'instance, l'application ne démarre pas. Dans le catalina fichier de log, je vois une tonne d'exceptions de type:

19-Feb-2017 10:27:15.326 WARNING [localhost-startStop-1] org.apache.tomcat.util.
scan.StandardJarScanner.scan Failed to scan [file:/usr/share/java/tomcat8/javax.
annotation-api.jar] from classloader hierarchy
 java.io.FileNotFoundException: /usr/share/java/tomcat8/javax.annotation-api.jar
 (No such file or directory)

Voici les fichiers Tomcat se plaint:

javax.annotation-api.jar
jsr181-api.jar
jaxb-api.jar
javax.xml.soap-api.jar
FastInfoset.jar
mimepull.jar
saaj-impl.jar
stax2-api.jar
woodstox-core-asl.jar
jaxb-core-2.2.10-b140802.1033.jar
jaxb-api-2.2.12-b140109.1041.jar
istack-commons-runtime-2.19.jar
txw2-2.2.10-b140802.1033.jar
hk2-core.jar
class-model.jar
config.jar
auto-depends.jar
javax.inject.jar
hk2-api.jar
osgi-resource-locator.jar
tiger-types.jar
bean-validator.jar
jtype.jar

Des suggestions sur la façon de résoudre ce problème?


Mise à jour #1:

Certains des fichiers ci-dessus appartiennent à jaxws-ri. Il s'est avéré que j'ai eu quelques (10), mais pas tous (23), des pots de JAX-WS RI 2.2.10 lib répertoire copié dans Tomcat lib répertoire. Après avoir copié le manque 13 pots, la liste des fichiers Tomcat se plaint dans le catalina fichier journal a été réduit à:

jaxb-core-2.2.10-b140802.1033.jar
jaxb-api-2.2.12-b140109.1041.jar
istack-commons-runtime-2.19.jar
txw2-2.2.10-b140802.1033.jar
hk2-core.jar
class-model.jar
config.jar
auto-depends.jar
javax.inject.jar
hk2-api.jar
osgi-resource-locator.jar
tiger-types.jar
bean-validator.jar
jtype.jar

(Exceptions pour les fichiers ci-dessus sont répétées plusieurs fois dans le fichier journal. Ressemble le scanner est appelée à plusieurs reprises au démarrage, peut-être la numérisation des cours différents chemins.)

Cela me dit que, avec le passage de 8.0.39 à 8.0.41, Tomcat est soudainement devenu très pointilleux sur la présence de toutes référencées pots, même si l'application fonctionne parfaitement bien sans beaucoup d'entre eux. En outre, Tomcat semble être très particulier sur des constructions particulières de certains pots (voir, par exemple, la jaxb-core... et jaxb-api... bocaux ci-dessus).

Maintenant, pour résoudre ce que je pourrais essayer de trouver tous ces disparus pots et les copier sur un Tomcat lib répertoire. Cependant, je ne vois aucune façon de s'assurer de la bonne source pour certains d'entre eux en raison de noms génériques, tels que config.jar, ou par l'absence de numéros de version.

Donc, est-il un moyen pour éviter de Tomcat scan.StandardJarScanner.scan d'être si pointilleux sur tous ces pots?


Mise à jour #2:

Il s'avère que dans Tomcat 8.0.38, un paramètre a été ajouté pour contrôler le pot de balayage, dont la valeur par défaut est true. Pour activer le balayage off, ajoutez la ligne suivante dans context.xml:

<Context>
  ...
  <JarScanner scanManifest="false"/>
</Context>

Pour plus de détails, voir
Fournir une option pour désactiver le traitement de Chemin de Classe d'entrée dans un bocal le fichier de manifeste.

Les fichiers n'existent pas. Si Tomcat 8.0.41 exige d'eux (et 8.0.39 n'a évidemment pas), ils devraient venir avec le yum update mais apparemment ils n'ont pas.
Donc, commencer avec rpm -ql tomcat|more pour voir ce qui a été installé et assurez-vous que les fichiers sont manquant et pas dans des endroits inattendus.

OriginalL'auteur user1408140 | 2017-02-19