在没有init-param的情况下设置DispatcherServlet

时间:2016-03-30 16:04:29

标签: java spring spring-mvc spring-web

嘿,我正在尝试在我的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停止寻找文件。

0 个答案:

没有答案