java - 在一个测试中我可以找到一个 xml,在另一个测试中我找不到

标签 java xml spring

我有一个有趣的问题,我在 spring-conf.xml 文件中定义了两个 Web 服务,并且有两个测试类位于同一个包中,并且每个类都有自己的到此 spring-conf.xml 文件的链接调用他们特定的网络服务。 我可以从我的一个测试类中获取 Bean,但不能从另一个测试类中获取 Bean,并且两个类中的代码是相同的。

我有这个

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class WSFirstTest {

private ApplicationContext context = new ClassPathXmlApplicationContext(
        "WEB-INF/spring-conf.xml");
private WSFirst ws = (WSFirst) context
        .getBean("serviceFirstDefault");

在另一处我有这个

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class WSSecondTest {

private ApplicationContext context2 = new ClassPathXmlApplicationContext(
        "WEB-INF/spring-conf.xml");
private WSSecond ws = (WSSecond) context2
        .getBean("serviceSecondDefault");

在第二个程序中,我的程序找不到 spring-conf 文件,但在另一个程序中可以找到。 有什么问题吗?

PS 当我从远程调用它们时,这两个 wservice 都工作正常,只有在本地我才遇到这个问题。

测试错误:

org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [WEB-INF/spring-conf.xml]; nested exception is java.io.FileNotFoundException: class path resource [WEB-INF/spring-conf.xml] cannot be opened because it does not exist

感谢您的建议。

最佳答案

据我所知,Spring 会解释应用程序上下文路径,而无需将“/”开头作为定义测试类的同一包中的相对路径,并且以“/”开头的路径作为完全限定的类路径位置(至少在 testing environment 中)。也许您应该尝试使用开头的“/”。

事实证明,不同的测试运行配置导致了该问题(请参阅下面的评论)。

关于java - 在一个测试中我可以找到一个 xml,在另一个测试中我找不到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9377697/

相关文章:

xml - 为什么元素在XPath中选择太多元素?

xml - 如何在 Odoo 10 的 Qweb 报告中创建自定义页眉和页脚?

spring - 通过 Active Directory LDAP 使用 Spring-Security 进行身份验证

java - 事件系统排序问题

java - 在 android 中使用 Json 对象文件创建数组列表

java - 使用命名空间评估 xpath 表达式时出现 IncompleteClassChangeError

javascript - struts2中如何使用arraylist显示 "no result found"

xml - 使用 xslt 复制包含特定子元素的父元素

java - spring boot自动创建数据库schema报错

java - CORS 的 Spring 实现没有在我预期的时候拒绝消息