Spring-Boot + JSF-приложение с использованием Primefaces и JoinFaces Starter со встроенным Tomcat в работоспособной WAR.На самом деле у меня есть два веб-приложения, использующих этот стек, и оба демонстрируют одну и ту же проблему.
Во время запуска или развертывания создается впечатление, что что-то сканирует каждый файл в WAR, пытается прочитать файлы классов.Он находит кучу не принадлежащих классу файлов, и я вижу ошибки в журнале, когда эти файлы сканируются.
Я вижу много повторяющихся сообщений об ошибках, приходящих от TypeAnnotationScanner и SubTypeScanner:
2019-04-15 11:03:49,287 [localhost-startStop-1] DEBUG org.reflections.Reflections - could not scan file META-INF/resources/primefaces-extensions/documentviewer/locale/bs.locale.txt in url jar:file:/C:/Users/my.name/.gradle/caches/modules-2/files-2.1/org.primefaces.extensions/primefaces-extensions/6.2.4/37d4674a246d7a0c15255f7a9296c41e3a39b1b1/primefaces-extensions-6.2.4.jar!/ with scanner SubTypesScanner
org.reflections.ReflectionsException: could not create class object from file META-INF/resources/primefaces-extensions/documentviewer/locale/bs.locale.txt
at org.reflections.scanners.AbstractScanner.scan(AbstractScanner.java:32)
at org.reflections.Reflections.scan(Reflections.java:253)
at org.reflections.Reflections.scan(Reflections.java:202)
at org.reflections.Reflections.<init>(Reflections.java:123)
at org.joinfaces.autoconfigure.servlet.initializer.JsfClassFactory.computeClasses(JsfClassFactory.java:180)
at org.joinfaces.autoconfigure.servlet.initializer.JsfClassFactory.getAnnotatedClassMap(JsfClassFactory.java:152)
at org.joinfaces.autoconfigure.servlet.initializer.JsfClassFactory.getAnnotatedClasses(JsfClassFactory.java:210)
at org.joinfaces.autoconfigure.servlet.initializer.JsfClassFactory.getAllClasses(JsfClassFactory.java:199)
at org.joinfaces.autoconfigure.mojarra.MojarraInitializerRegistrationBean.getClasses(MojarraInitializerRegistrationBean.java:50)
at org.joinfaces.autoconfigure.servlet.initializer.ServletContainerInitializerRegistrationBean.lambda$customize$0(ServletContainerInitializerRegistrationBean.java:58)
at org.springframework.boot.web.embedded.tomcat.TomcatStarter.onStartup(TomcatStarter.java:54)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5245)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1421)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1411)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.reflections.ReflectionsException: could not create class file from bs.locale.txt
at org.reflections.adapters.JavassistAdapter.getOfCreateClassObject(JavassistAdapter.java:102)
at org.reflections.adapters.JavassistAdapter.getOfCreateClassObject(JavassistAdapter.java:24)
at org.reflections.scanners.AbstractScanner.scan(AbstractScanner.java:30)
... 18 common frames omitted
Caused by: java.io.IOException: bad magic number: 2320436f
at javassist.bytecode.ClassFile.read(ClassFile.java:825)
at javassist.bytecode.ClassFile.<init>(ClassFile.java:154)
at org.reflections.adapters.JavassistAdapter.getOfCreateClassObject(JavassistAdapter.java:100)
... 20 common frames omitted
Есть идеи, почему это происходит?