TomEE 在初始化虚拟目录时花费大量时间

问题描述

我们在 Windows 2016 Server 上使用 Apache TomEE plus 8。我们创建了一个包含 30 万多个文件的虚拟目录。 据观察,TomEE 需要一个多小时才能启动。如果删除虚拟目录,TomEE 将在大约 2 分钟内启动。

通过虚拟目录,我们希望向用户提供报告文件的访问权限。 https://MYHOST.com/MYREPORTS/pdfreports/pdffile1.pdf

我们在 Catalina/conf/localhost/ 文件夹下使用了以下 MYREPORTS.xml

<pre>
<Context docBase="d:\MyFiles\MyReports">
<Resources allowLinking="false" />
</Context>
</pre>

注意:文件夹 d:\MyFiles\MyReports 有“pdfreports”子文件夹,但“pdfreports”是网络共享位置的软链接。

不确定这里缺少什么。试图获得更多的日志信息,但没有得到线索。请分享您的想法。当我们检查时,TomEE 在启​​动期间忙于以下线程堆栈跟踪。似乎它正在扫描目录中的所有文件,并且扫描所有 300K+ 文件必须花费时间:-(.

<pre>
"localhost-startStop-1" - Thread t@50
java.lang.Thread.State: RUNNABLE
at java.io.WinNTFileSystem.getBooleanAttributes(Native Method)
at java.io.File.isDirectory(File.java:849)
at org.apache.openejb.util.AnnotationFinder.scanDir(AnnotationFinder.java:213)
at org.apache.openejb.util.AnnotationFinder.scanDir(AnnotationFinder.java:218)
at org.apache.openejb.util.AnnotationFinder.file(AnnotationFinder.java:204)
at org.apache.openejb.util.AnnotationFinder.<init>(AnnotationFinder.java:133)
at org.apache.openejb.util.AnnotationFinder.<init>(AnnotationFinder.java:112)
at org.apache.openejb.config.DeploymentLoader.checkAnnotations(DeploymentLoader.java:2050)
at org.apache.openejb.config.DeploymentLoader.discoverModuleType(DeploymentLoader.java:1971)
at org.apache.openejb.config.DeploymentLoader.discoverModuleType(DeploymentLoader.java:1905)
at org.apache.openejb.config.DeploymentLoader.load(DeploymentLoader.java:151)
at org.apache.tomee.catalina.TomcatWebAppBuilder.loadApplication(TomcatWebAppBuilder.java:2303)
at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1188)
at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1125)
at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:133)
</pre>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...