Java 如果在根上下文中声明,为什么spring ws没有检测到spring配置文件。

Java 如果在根上下文中声明,为什么spring ws没有检测到spring配置文件。,java,spring,servlets,spring-mvc,spring-ws,Java,Spring,Servlets,Spring Mvc,Spring Ws,我有一个奇怪的问题。我有一个my-spring.xml文件要添加到应用程序中,但由于某些原因,我只能在根上下文中检测它 以下内容未检测到在根上下文中声明的my-spring.xml 上下文配置位置 /WEB-INF/my-datasources.xml /WEB-INF/my-spring.xml org.springframework.web.context.ContextLoaderListener 我的服务 org.springframework.ws.transport.http.Me

我有一个奇怪的问题。我有一个my-spring.xml文件要添加到应用程序中,但由于某些原因,我只能在根上下文中检测它

以下内容未检测到在根上下文中声明的my-spring.xml


上下文配置位置
/WEB-INF/my-datasources.xml
/WEB-INF/my-spring.xml
org.springframework.web.context.ContextLoaderListener
我的服务
org.springframework.ws.transport.http.MessageDispatcherServlet
上下文配置位置
/WEB-INF/webservice-config.xml
我的服务
/网络服务/*
wsdl
文本/xml
xsd
文本/xml
如果我把它改成这个,它就会工作(注意我的spring.xml位置的不同)


上下文配置位置
/WEB-INF/my-datasources.xml
org.springframework.web.context.ContextLoaderListener
我的服务
org.springframework.ws.transport.http.MessageDispatcherServlet
上下文配置位置
/WEB-INF/webservice-config.xml
/WEB-INF/my-spring.xml
我的服务
/网络服务/*
wsdl
文本/xml
xsd
文本/xml

我真的看不出我做错了什么。如果我理解它的工作方式,那么当在根上下文中声明(如第一个示例中所示)时,任何资源都应该通过应用程序访问它。在本例中,情况似乎并非如此,因为我无法从控制器/端点类访问my-spring.xml文件中定义的属性。

我认为您需要逗号来分隔多个
contextConfigLocation
文件。根据这一回答:


编辑:尝试删除前面的
/
,例如
WEB-INF/my datasources.xml
,而不是
/WEB-INF/my datasources.xml

尝试类似的操作


上下文配置位置
类路径:/my-datasources.xml
类路径:/my-spring.xml

但是您必须将这两个文件放在类路径中

如果您将第一个上下文参数更改为
contextConfigLocationclasspath*:WEB-INF/my-*.xml
,那么第一个配置是否有效?我打算提出同样的建议+1刚试过,但仍然没有区别。它还抱怨没有找到我的数据源文件中的事务管理器,这意味着它无法加载任何文件。/WEB-INF被认为在类路径中还是必须在/WEB-INF/classes中?您需要在WEB-INF/classes或WEB-INF/lib-->中的任何.jar文件中。谢谢-这可能会起作用,但我需要理解为什么使用WEB-INF/my-spring.xml在应该起作用时不起作用。contextConfigLocation尝试在指定路径中查找文件,但我们提供的路径是相对路径,而不是绝对路径。因此,最好在类路径中有这样的配置文件。