Spring Framework Servlet скрывает обычный Java HttpServlet - PullRequest
0 голосов
/ 08 декабря 2010

Я занимаюсь разработкой приложения Java, которое должно иметь два веб-интерфейса: сервлет, обрабатывающий логику веб-службы (/ WSProxy), и интерфейс веб-администратора с использованием среды Spring (/ Admin или * .html). Моя проблема в том, что диспетчер среды Spring скрывает другой сервлет; Я могу просмотреть журналы и увидеть, что мой сервлет администратора загружен в журнал сервера, но каждый раз, когда я пытаюсь перейти к нему в своем браузере, создается впечатление, что сервлет Sping пытается обработать запрос! Спасибо.

Мой файл 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>

Ответы [ 2 ]

1 голос
/ 08 декабря 2010

Предполагая, что Ricochet - это имя вашего приложения (войны), вам нужно изменить второе отображение с .html на /RicochetAdmin/.html.Теперь у вас есть способ вызова диспетчера Spring для каждого запроса, заканчивающегося .html.

0 голосов
/ 08 декабря 2010

Измените порядок отображения вашего сервлета в web.xml, чтобы диспетчер Spring загружался после вашего другого сервлета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...