【问题标题】:Spring framework Servlet hiding regular Java HttpServletSpring框架Servlet隐藏常规Java HttpServlet
【发布时间】:2010-12-08 14:26:03
【问题描述】:

我正在开发一个具有两个 Web 界面的 Java 应用程序:一个处理一些 Web 服务逻辑的 servlet(/WSProxy)和一个使用 Spring 框架(/Admin 或 *.html)的 Web 管理界面。我的问题是 Spring 框架调度程序隐藏了另一个 Servlet;我可以查看日志并看到我的 Admin Servlet 已加载到服务器日志中,但每次我尝试在浏览器中导航到它时,看起来好像 Sping Servlet 正在尝试处理请求!谢谢。

我的 web.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">
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <servlet>
        <servlet-name>RicochetAdmin</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>RicochetProxy</servlet-name>
        <servlet-class>WSProxy.Servlets.RicochetProxy</servlet-class>
        <init-param>
            <param-name>ricochet.xml.path</param-name>
            <param-value>C:\Users\cdix\Documents\NetBeansProjects\Ricochet\web\WEB-INF\conf\ricochet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>RicochetProxy</servlet-name>
        <url-pattern>/RicochetProxy/*</url-pattern>
        <url-pattern>/RicochetProxy</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>RicochetAdmin</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>redirect.jsp</welcome-file>
    </welcome-file-list>
</web-app>

【问题讨论】:

  • 你为什么不发布你的 web.xml?您需要配置您的 url 映射。
  • 好的,现在“隐藏”了哪些请求?您尝试的 URL 是什么?
  • 例如:如果我想从 RicochetProxy 检索 WSDL 文件,我想导航到 /RicochetProxy/name-of-wsdl?WSDL 但是我得到一个“找不到资源”页面(我知道“那里”的 WSDL,并且没有从服务器收到任何错误消息)。

标签: java spring servlets


【解决方案1】:

假设 Ricochet 是您的应用(战争)名称,您需要将第二个映射从 .html 更改为 /RicochetAdmin/.html。你现在拥有它的方式是为每个以 .html 结尾的请求调用 Spring 调度程序。

【讨论】:

    【解决方案2】:

    更改 web.xml 中 servlet 映射的顺序,以便在其他 servlet 之后加载 Spring 的调度程序。

    【讨论】:

    • 我确实认为我的 servlet 映射是重叠的,但是我在使其工作时遇到了一些困难。我对 Java 开发相对较新,并且正在涉足。如果项目名称是 Ricochet,我以前可以通过转到 /Ricochet/RicochetProxy 来访问 RicochetProxy。如果我将映射更改为 /Ricochet/RicochetProxy 和 /Ricochet/RicochetAdmin,我会收到找不到资源的消息。我在正确的轨道上吗?
    猜你喜欢
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    • 2016-12-31
    • 2012-07-21
    • 2017-07-06
    相关资源
    最近更新 更多