嘿,我正在尝试在我的Web应用程序中连接多个调度程序servlet(实际上是一个调度程序servlet和一个消息调度程序servlet)。所有这些servlet都需要共享我的所有bean,所以我将应用程序上下文作为上下文参数连接。
<servlet>
<servlet-name>apf-inflow</servlet-name>
<servlet-class>org.springframework.ws.transport.http.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>com.fmr.bpo.asyncprocessingframework.concentrator.wiring.configuration.pojo.SampleConfig</param-value>
</context-param>
<context-param>
<param-name>contextClass</param-name>
<param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet-mapping>
<servlet-name>apf-inflow</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
因为没有bean只适用于一个调度程序servlet,所以我没有放置init-param。
但是当我没有指定参数时,spring会查找“/WEB-INF/servlet-name-servlet.xml”,所以我收到了这个错误:
引起: org.springframework.beans.factory.BeanDefinitionStoreException: IOException从ServletContext资源解析XML文档 [/WEB-INF/apf-inflow-servlet.xml];嵌套异常是 java.io.FileNotFoundException:无法打开ServletContext资源 [/WEB-INF/apf-inflow-servlet.xml]
有什么方法可以告诉调度员不要查找配置(因为我已经连接了一个公共配置)?
修改
添加默认位置或将调度程序明确指向空弹簧配置文件可以解决问题。
<servlet>
<servlet-name>apf-inflow</servlet-name>
<servlet-class>org.springframework.ws.transport.http.MessageDispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>com.fmr.bpo.asyncprocessingframework.concentrator.wiring.configuration.pojo.BlankConfig</param-value>
</init-param>
<init-param>
<param-name>contextClass</param-name>
<param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</init-param>
<init-param>
<param-name>transformWsdlLocations</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
但我真的不想在那里放一个虚拟文件来压制错误。我想首先要求spring停止寻找文件。