Classpath сканирует неверное магическое число с помощью JSF + Spring-Boot, PrimeFaces и Joinfaces - PullRequest
1 голос
/ 15 апреля 2019

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

Есть идеи, почему это происходит?

...