【问题标题】:Map Multiple Spring MVC Applications to Root Servlet将多个 Spring MVC 应用程序映射到根 Servlet
【发布时间】:2013-09-17 14:12:57
【问题描述】:

我有多个 Spring MVC 应用程序我想部署到同一台服务器,但在这样做时遇到了麻烦。

在我的 web.xml 中,我映射了调度程序 servlet:

<servlet>
    <servlet-name>appServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

但是,如果我在同一台服务器上有多个应用程序,我会在尝试部署时收到以下错误:

0000003f webapp W com.ibm.ws.webcontainer.webapp.WebApp initializeStaticFileHandler SRVE0278E: Error while adding servlet mapping --&gt; /*.

如果我将映射更改为 /test 它可以工作,但我当然希望调度程序 servlet 映射到所有请求。

我做错了什么?

更新

想要我的所有请求都在根 URI(即http://&lt;server&gt;/&lt;contextroot&gt;/*)下,但在多个应用程序执行此操作时遇到问题。

【问题讨论】:

  • 你在一场战争中有多个 Spring 应用程序,还是在它自己的战争中每个 Spring 应用程序?如果是后者,你能显示你所有的 web.xml 配置吗?

标签: java spring spring-mvc


【解决方案1】:

您似乎遇到了这个错误:http://www-01.ibm.com/support/docview.wss?uid=swg1PK18713

按照建议,要么

  • 升级您的应用服务器或
  • 禁用文件服务

【讨论】:

  • 这似乎可以解决问题,即使我没有运行这些版本的 Websphere。将继续观察该选项是否有任何其他副作用,但我现在认为这是一个答案。谢谢!
  • 当我尝试启动 Eclipse RAP 应用程序时,我遇到了与 8.5.5.0 版本相同的错误。有什么想法吗?
  • 我在使用 WAS v8.5.5.6 时遇到了同样的错误。禁用文件服务解决了这个问题。
【解决方案2】:

如果我将映射更改为 /test 它可以工作,但我当然想要 为所有请求映射的调度程序 servlet。

在这种情况下,您应该替换:

<url-pattern>/test</url-pattern>

<url-pattern>/test/*</url-pattern>

【讨论】:

  • 那么我所有的 URL 请求都需要在 /test 下,不是吗?更新了问题以供澄清。
猜你喜欢
  • 1970-01-01
  • 2016-08-02
  • 1970-01-01
  • 2016-09-05
  • 1970-01-01
  • 2011-12-27
  • 1970-01-01
  • 2016-06-30
  • 1970-01-01
相关资源
最近更新 更多