2017-04-12 344 views
1

我得到的日誌一些警告,比如:禁用scanManifest掃描在Tomcat中嵌入在春季啓動

java.io.FileNotFoundException: C:\Users\user\.m2\repository\com\lowagie\itext\2.0.8\bcmail-jdk14-138.jar (O sistema não pode encontrar o arquivo especificado) 
    at java.util.zip.ZipFile.open(Native Method) ~[na:1.8.0_121] 
    at java.util.zip.ZipFile.<init>(ZipFile.java:219) ~[na:1.8.0_121] 
    at java.util.zip.ZipFile.<init>(ZipFile.java:149) ~[na:1.8.0_121] 
    at java.util.jar.JarFile.<init>(JarFile.java:166) ~[na:1.8.0_121] 
    at java.util.jar.JarFile.<init>(JarFile.java:130) ~[na:1.8.0_121] 
    at org.apache.tomcat.util.scan.JarFileUrlJar.<init>(JarFileUrlJar.java:60) ~[tomcat-embed-core-8.5.6.jar:8.5.6] 
    at org.apache.tomcat.util.scan.JarFactory.newInstance(JarFactory.java:48) ~[tomcat-embed-core-8.5.6.jar:8.5.6] 
    at org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:338) ~[tomcat-embed-core-8.5.6.jar:8.5.6] 
    at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:288) ~[tomcat-embed-core-8.5.6.jar:8.5.6] 
    at org.apache.jasper.servlet.TldScanner.scanJars(TldScanner.java:262) [tomcat-embed-jasper-8.5.6.jar:8.5.6] 
    at org.apache.jasper.servlet.TldScanner.scan(TldScanner.java:104) [tomcat-embed-jasper-8.5.6.jar:8.5.6] 
    at org.apache.jasper.servlet.JasperInitializer.onStartup(JasperInitializer.java:101) [tomcat-embed-jasper-8.5.6.jar:8.5.6] 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5178) [tomcat-embed-core-8.5.6.jar:8.5.6] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-8.5.6.jar:8.5.6] 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1403) [tomcat-embed-core-8.5.6.jar:8.5.6] 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393) [tomcat-embed-core-8.5.6.jar:8.5.6] 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_121] 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_121] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_121] 
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_121] 

在獨立的Tomcat我可以創建一個context.xml有:

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

如何使用Spring Boot在java配置類中禁用清單文件的JarScanner(https://tomcat.apache.org/tomcat-8.0-doc/config/jar-scanner.html)。

回答

2

編輯:這個怎麼樣?

@Bean 
    public EmbeddedServletContainerFactory embeddedServletContainerFactory() { 
    return new TomcatEmbeddedServletContainerFactory() { 
     @Override 
     protected void postProcessContext(Context context) { 
     ((StandardJarScanner) context.getJarScanner()).setScanManifest(false); 
     } 
    }; 
    }