为什么Camel Servlet映射在网址末尾需要斜杠?

时间:2018-07-13 08:45:15

标签: java http servlets routing apache-camel

我有一个使用骆驼路由的Web应用程序,我的问题与Web xml中的servlet映射有关(请参见下文)。通常,我在路由构建器中定义了许多不同的路由,例如,可以通过以下方式进行访问:

from(“ servlet://?matchOnUriPrefix = true&servletName = CamelRedirectErrorServlet”)

和一个“一般”入口点,除了这些更具体的路线之外,其他所有其他入口也应包括在内:

from(“ servlet://?matchOnUriPrefix = true”)

我的问题是,可以通过以下URL访问我的servlet:

http://my.url/redirect/back/?param1=value1&param2=value2

但是此网址导致找不到404:

http://my.url/redirect/back?param1=value1&param2=value2

在我看来,使用所有带有“ /?”的网址似乎不常见,甚至是错误的结尾。 有人可以帮我解决这个问题吗?我很欣赏每个主意。 先感谢您!! :-)

<servlet-mapping>
        <servlet-name>CamelRedirectBackServlet</servlet-name>
        <url-pattern>/redirect/back/*</url-pattern>
        <url-pattern>/redirect/back</url-pattern>
    </servlet-mapping>
     <!-- Camel redirect error servlet -->
    <servlet>
        <servlet-name>CamelRedirectErrorServlet</servlet-name>
        <servlet-class>org.apache.camel.component.servlet.CamelHttpTransportServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <!--  Camel redirect error servlet mapping -->
    <servlet-mapping>
        <servlet-name>CamelRedirectErrorServlet</servlet-name>
        <url-pattern>/redirect/error/*</url-pattern>
        <url-pattern>/redirect/error</url-pattern>
    </servlet-mapping>
    <!-- Camel servlet mapping -->
    <servlet-mapping>
        <servlet-name>CamelServlet</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

0 个答案:

没有答案