2017-07-20 4 views
2

Récemment, nous avons mis à jour d'apache-tomcat-7.0.76-x64 à apache-tomcat-8.5.15-x64 L'installation est l'installation standard sur les fenêtres les pots supplémentaires nous sont la mise en libs sont:Tomcat 8.5.15 impossible de trouver jcifs.jar

  1. axis.jar - un système d'interaction Apache eXtensible un cadre de service Web XML
  2. commons-logging-api-1.1.1.jar - pour vous connecter
  3. jtds -1.2.2.jar - un pilote JDBC 3.0 pour Microsoft SQL Server
  4. ojdbc6.jar - une base de données Oracle Driver
  5. xercesImpl.jar - pour l'analyse syntaxique xml
  6. xml-apis.jar - pour l'analyse syntaxique xml

Voici l'erreur que je peux voir quand je start tomcat

19-Jul-2017 19:23:22.146 WARNING [localhost-startStop-1] org.apache.tomcat.util.scan.StandardJarScanner.scan Failed to scan [file:/D:/Compass8.8/apache-tomcat-8.5.15-x64-Compass881-18080/lib/jcifs.jar] from classloader hierarchy 
java.io.FileNotFoundException: D:\Compass8.8\apache-tomcat-8.5.15-x64-Compass881-18080\lib\jcifs.jar (The system cannot find the file specified) 
    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.scan.JarFileUrlJar.<init>(JarFileUrlJar.java:60) 
    at org.apache.tomcat.util.scan.JarFactory.newInstance(JarFactory.java:49) 
    at org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:338) 
    at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:288) 
    at org.apache.jasper.servlet.TldScanner.scanJars(TldScanner.java:262) 
    at org.apache.jasper.servlet.TldScanner.scan(TldScanner.java:104) 
    at org.apache.jasper.servlet.JasperInitializer.onStartup(JasperInitializer.java:101) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5196) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734) 
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1107) 
    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1841) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 

Lorsque j'ai vérifié, je n'ai trouvé aucune référence pour jcifs dans le répertoire d'installation de tomcat.

Répondre

1

Votre problème est jtds. Si vous regardez dans le fichier manifest.mf dans le fichier jtds jar, vous verrez qu'il recherche jcifs.jar sur son chemin de classe.

Si vous ne prévoyez pas d'utiliser des canaux nommés pour vous connecter à SQL Server, vous n'avez pas besoin de jcifs.jar sur votre chemin de classe.

Le correctif pour Tomcat est le suivant:

L'erreur vient de Tomcat essayer de scanner jcifs.jar pour TLD. La solution consiste à ajouter jcifs.jar à la propriété tomcat.util.scan.StandardJarScanFilter.jarsToSkip dans catalina.properties.