如何从Servlet中的URL路径中删除结尾“/”?

时间:2011-10-12 15:26:21

标签: java servlets xml-rpc

我想将我的RPC服务映射到 http://path.com/RPC2 而不是/ RPC2 /

在我的web.xml文件中,我目前将url-pattern设置为 /

<servlet-mapping>
        <servlet-name>RPC2</servlet-name>
        <url-pattern>/</url-pattern>
</servlet-mapping>

我试图仅删除url-pattern,但这不起作用。当我删除url-pattern条目时,Tomcat将不会部署它并且Jetty工作但是在../ RPC2 /

这是完整的XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <servlet>
        <description>Automatos RPC Server</description>
        <servlet-name>RPC2</servlet-name>
        <servlet-class>RPCServlet</servlet-class>
        <init-param>
            <param-name>streamMessages</param-name>
            <param-value>1</param-value>
        </init-param>
        <init-param>
            <!-- Optional! Defaults to text/xml and ISO-8859-1 -->
            <param-name>contentType</param-name>
            <param-value>text/xml; charset=ISO-8859-1</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>RPC2</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
</web-app>

1 个答案:

答案 0 :(得分:1)

在上下文根目录上部署webapp(在Tomcat中,只需将WAR重命名为ROOT.war或设置<Context path="">而不是<Context path="/RPC2">)。这样您的webapp就会部署到http://path.com。这样,您可以在/RPC2的URL模式上映射servlet,并且servletcontainer将不再自动重定向到webapp根/