【问题标题】:Unable to find data for class 'org/springframework/boot/context/web/SpringBootServletInitializer'找不到类“org/springframework/boot/context/web/SpringBootServletInitializer”的数据
【发布时间】:2016-03-28 08:19:21
【问题描述】:

我在尝试在 Servlet 容器中启动 Spring Boot 应用程序时遇到这个奇怪的错误。

相同的 WAR 在独立的 Tomcat 服务器中正常启动,但如果使用 Gretty Gradle 插件启动,则会出现以下错误

这意味着什么?

Spring-boot 1.3.3、Gradle 2.12、Gretty 1.2.4、Tomcat 8

java.lang.RuntimeException: Reloading agent exited via exception, please raise a jira
    at org.springsource.loaded.agent.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:104)
    at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
    at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
    ...
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:305)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5066)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399)
    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)
Caused by: org.springsource.loaded.UnableToLoadClassException: Unable to find data for class 'org/springframework/boot/context/web/SpringBootServletInitializer'
    at org.springsource.loaded.Utils.loadSlashedClassAsBytes(Utils.java:787)
    at org.springsource.loaded.TypeRegistry.getDescriptorFor(TypeRegistry.java:311)
    at org.springsource.loaded.TypeDescriptorExtractor$ExtractionVisitor.getTypeDescriptorFor(TypeDescriptorExtractor.java:124)
    at org.springsource.loaded.TypeDescriptorExtractor$ExtractionVisitor.findTypeDescriptor(TypeDescriptorExtractor.java:140)
    at org.springsource.loaded.TypeDescriptorExtractor$ExtractionVisitor.walkHierarchyForCatchersAndSuperDispatchers(TypeDescriptorExtractor.java:152)
    at org.springsource.loaded.TypeDescriptorExtractor$ExtractionVisitor.computeCatchersAndSuperdispatchers(TypeDescriptorExtractor.java:219)
    at org.springsource.loaded.TypeDescriptorExtractor$ExtractionVisitor.getTypeDescriptor(TypeDescriptorExtractor.java:81)
    at org.sprce.loaded.TypeDescriptorExtractor.extract(TypeDescriptorExtractor.java:51)
    at org.springsource.loaded.TypeRegistry.addType(TypeRegistry.java:912)
    at org.springsource.loaded.agent.SpringLoadedPreProcessor.preProcess(SpringLoadedPreProcessor.java:302)
    at org.springsource.loaded.agent.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:102)
    ... 42 more

【问题讨论】:

    标签: spring-boot gretty


    【解决方案1】:

    显然 Gretty 中有一个与类加载相关的错误。 从 WAR 开始 Gretty,例如gradlew appRunWar 允许解决它。

    为它打开了多个错误:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-01
      • 2015-02-04
      • 1970-01-01
      • 2013-04-06
      • 1970-01-01
      • 2017-02-19
      • 2014-04-15
      • 2021-05-28
      相关资源
      最近更新 更多