【问题标题】:Spring Data Jpa - scans for files in tests folderSpring Data Jpa - 扫描测试文件夹中的文件
【发布时间】:2012-05-09 15:46:12
【问题描述】:

我正在使用 Spring Data JPA,这很奇怪,但它会尝试扫描(在部署期间)测试文件,这会导致错误:

java.lang.ClassNotFoundException: org.junit.runner.RunWith
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
...
WARN : org.springframework.core.type.classreading.AnnotationAttributesReadingVisitor - Failed to classload      type while reading annotation metadata. This is a non-fatal error, but certain annotation metadata may be     unavailable.

classnotfoundexception 是因为测试依赖项在 maven 的“测试”范围内。

但我的问题是,为什么要扫描测试文件夹? (/src/main/test)。

上下文配置如下:

 <jpa:repositories base-package="com.domain.repository" />

你能告诉我我做错了什么吗?我的.classpath 内容如下:

<classpathentry kind="src" output="target/classes" path="src/main/java"/>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
<classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
...

非常感谢您对此提供的帮助。

【问题讨论】:

  • 我在我的项目中遇到了同样的问题,春季 3.1.1。你找到解决办法了吗?

标签: java spring spring-data spring-data-jpa


【解决方案1】:

但我的问题是,为什么要扫描测试文件夹? (/src/main/test).

上下文配置如下:

&lt;jpa:repositories base-package="com.domain.repository" /&gt;

确切地说,我不认为 Spring 正在扫描此文件夹 - 毕竟它是您的源文件夹。它只查看已部署的包结构,我怀疑问题的原因与此有关。

我遇到了同样的问题,但它是由 Eclipse 中的错误部署配置引起的,而不是 Spring 特有的问题。我已将 Eclipse 配置为将 src/test/java 中的测试类部署到目标部署包,因此当我启动服务器时,所有测试文件(当然有相应的包结构)都存在。但是,根据您发布的.classpath sn-p 判断,我看到您明确将它们排除在部署之外。

尽管如此,类文件还可以通过其他方式潜入您的部署。您是否能够验证测试类实际上不存在于已部署的包中?它们是否可以通过您设置的其他进程(FileSynch 插件)在那里同步?

另外,您是否有任何其他带有配置的 Spring 上下文文件来扫描其他基础包?

您可以添加更多有关 Eclipse 配置以及如何部署到测试服务器的详细信息以帮助解决问题。

【讨论】:

    【解决方案2】:

    这似乎是Spring中的一个错误“伪特性”:

    https://jira.springsource.org/browse/SPR-9233

    当它在运行时找不到注释的类时会向您发出警告,即使您的应用程序非常好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-11
      • 1970-01-01
      • 1970-01-01
      • 2016-08-23
      • 2012-03-16
      • 1970-01-01
      • 2017-10-20
      • 2022-01-02
      相关资源
      最近更新 更多