我想要两个 servlet(我正在使用 Jetty)提供这样的 URL:
host/aaa/submit
host/bbb/submit
我尝试将 servlet 的路径规范分别设置为aaa
和bbb
,但随后出现异常
two controller methods annotated with @RequestMapping(value = {"/submit"})
(尽管有问题的两种方法是在两个不同的 servlet 使用的两个单独的控制器类中定义的)。
相反,如果我将两个 servlet 的 pathspecs 设置为/
并将其更改@RequestMappings
为aaa/submit
and bbb/submit
,我将得到 404。(我想这并不令人惊讶——不确定它应该如何有效地与两个“默认”servlet 一起工作)
我应该如何映射这些 URL?(先发制人 - 它们确实需要是单独的 servlet -aaa
部分应该使用或不使用 DB,bbb
部分应该在没有 DB 的情况下失败)
以防万一,这里是 Jetty 上下文:
<property name="servletHandler">
<bean class="org.mortbay.jetty.servlet.ServletHandler">
<property name="servlets">
<list>
<bean name="aaaServlet" class="org.mortbay.jetty.servlet.ServletHolder">
<property name="name" value="aaa" />
<property name="servlet">
<bean class="org.springframework.web.servlet.DispatcherServlet" />
</property>
<property name="initParameters">
<map>
<entry key="contextConfigLocation" value="classpath:aaa-context.xml" />
</map>
</property>
</bean>
<bean name="bbbServlet" class="org.mortbay.jetty.servlet.ServletHolder">
<property name="name" value="bbb" />
<property name="servlet">
<bean class="org.springframework.web.servlet.DispatcherServlet" />
</property>
<property name="initParameters">
<map>
<entry key="contextConfigLocation" value="classpath:bbb-context.xml" />
</map>
</property>
</bean>
</list>
</property>
<property name="servletMappings">
<list>
<bean class="org.mortbay.jetty.servlet.ServletMapping">
<property name="servletName" value="aaa" />
<property name="pathSpec" value="/" />
</bean>
<bean class="org.mortbay.jetty.servlet.ServletMapping">
<property name="servletName" value="bbb" />
<property name="pathSpec" value="/" />
</bean>
</list>
</property>
</bean>
</property>
两个控制器看起来像这样:
@Controller
public class AaaController {
@RequestMapping(value = {"/aaa/submit"}, method = (RequestMethod.POST))
public void handleAaaSubmitPostRequest(final HttpServletRequest request,
final HttpServletResponse response,
@RequestBody String body) throws IOException {
}
和
@Controller
public class BbbController {
@RequestMapping(value = {"/bbb/submit"}, method = (RequestMethod.POST))
public void handleBbbSubmitPostRequest(final HttpServletRequest request,
final HttpServletResponse response,
@RequestBody String body) throws IOException {
}