【问题标题】:Eclipse: Could not instrument class exception after upgrading to Spring Boot 2.0.1Eclipse:升级到 Spring Boot 2.0.1 后无法检测类异常
【发布时间】:2018-09-30 09:12:13
【问题描述】:

在将 Vaadin Spring Boot 项目从 1.5.9 升级到 2.0.1 后,在使用 spring-boot:run 在 Eclipse 中启动应用程序时,我遇到了多个 Could not instrument class... 异常。使用 spring-boot:run 从命令行执行应用程序不会显示异常。

没有成功,我已经尝试在 Eclipse 中清理项目,更新 maven 项目并删除 .m2 文件夹。

无论是从命令行启动还是从 Eclipse 启动,应用程序本身似乎都可以正常运行。

如果我从 Eclipse 启动 Spring Boot 时显示的异常之一:

[INFO] --- spring-boot-maven-plugin:2.0.1.RELEASE:run (default-cli) @ project ---
Could not instrument class org/hibernate/validator/internal/engine/valueextraction/ObservableValueValueExtractor: java.lang.RuntimeException
at com.ifedorenko.org.objectweb.asm.ClassVisitor.visitTypeAnnotation(Unknown Source)
at com.ifedorenko.org.objectweb.asm.ClassReader.accept(Unknown Source)
at com.ifedorenko.org.objectweb.asm.ClassReader.accept(Unknown Source)
at com.ifedorenko.m2e.sourcelookup.javaagent.ClassfileTransformer.transform(ClassfileTransformer.java:27)
at com.ifedorenko.m2e.sourcelookup.javaagent.Premain$1.transform(Premain.java:55)
at sun.instrument.TransformerManager.transform(TransformerManager.java:188)
at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:428)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.hibernate.validator.internal.engine.valueextraction.ValueExtractorManager.<clinit>(ValueExtractorManager.java:43)
at org.hibernate.validator.internal.engine.ValidatorFactoryImpl.<init>(ValidatorFactoryImpl.java:140)
at org.hibernate.validator.HibernateValidator.buildValidatorFactory(HibernateValidator.java:38)
at org.hibernate.validator.internal.engine.ConfigurationImpl.buildValidatorFactory(ConfigurationImpl.java:364)
at org.springframework.boot.autoconfigure.BackgroundPreinitializer$ValidationInitializer.run(BackgroundPreinitializer.java:142)
at org.springframework.boot.autoconfigure.BackgroundPreinitializer$1.runSafely(BackgroundPreinitializer.java:92)
at org.springframework.boot.autoconfigure.BackgroundPreinitializer$1.run(BackgroundPreinitializer.java:82)
at java.lang.Thread.run(Thread.java:745)

我的设置:

  • Java 8 JDK 171
  • Eclipse Oxygen.3a
  • Spring Boot 2.0.1
  • Maven 3.3.9

知道如何摆脱或导致异常的原因吗?

【问题讨论】:

    标签: java eclipse hibernate maven spring-boot


    【解决方案1】:

    这个问题似乎是由 Eclipse 中的 Maven Development Tools plugin 引起的。卸载插件后,错误信息消失。

    但是,我使用这个插件是为了在调试 Spring Boot maven 应用程序时能够查看源代码(参见 Eclipse not picking up Maven attached source on debug)。如果没有插件,我会在调试时收到“找不到源”,即使是我自己的类也是如此。

    【讨论】:

      猜你喜欢
      • 2018-10-07
      • 1970-01-01
      • 1970-01-01
      • 2019-05-21
      • 1970-01-01
      • 1970-01-01
      • 2018-08-04
      • 1970-01-01
      • 2022-06-24
      相关资源
      最近更新 更多