我使用的是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.类不成立异常是因为测试依赖项在maven的" test“作用域中。
但我的问题是,它为什么要扫描测试文件夹?(/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"/>
...我真的很感谢你的帮助。
发布于 2012-05-31 16:31:43
我的问题是,为什么要扫描测试文件夹?(/src/
/)。
上下文配置如下:
<jpa:repositories base-package="com.domain.repository" />
准确地说,我不认为Spring正在扫描这个文件夹--它毕竟是你的源文件夹。它只查看已部署的包结构,我怀疑问题的原因与此有关。
我遇到了同样的问题,但它是由Eclipse中的错误部署配置引起的,而不是特定于Spring的东西。我将Eclipse配置为将src/test/java中的测试类部署到目标部署包中,因此所有测试文件(当然有相应的包结构)在我启动服务器时都存在。但是,从您发布的.classpath代码片段来看,我看到您明确地将它们排除在部署之外。
尽管如此,类文件还可以通过其他方式进入您的部署。您是否能够验证测试类实际上不存在于已部署的包中?它们会被你设置的其他进程(可能是FileSynch插件)同步吗?
另外,你有没有其他的Spring上下文文件,带有扫描其他基本包的配置?
您可以添加有关Eclipse配置以及如何部署到测试服务器的更多细节,以帮助解决此问题。
发布于 2012-05-15 03:02:41
这似乎是Spring中的一个bug“伪特性”:
https://jira.springsource.org/browse/SPR-9233
当它在运行时找不到批注的类时,它会警告您,即使您的应用程序相当正常。
https://stackoverflow.com/questions/10375287
复制相似问题