Проблема с отображением URL сервлетов с пружиной и BIRT - PullRequest
1 голос
/ 27 апреля 2011

В моем приложении я использую архитектуру Spring MVC (3.0.5) вместе с инфраструктурой отчетности BIRT.

Я пытаюсь обслуживать все запросы, включая статические ресурсы, такие как css, js, html и файлы изображений с использованием пружины DispatcherServlet.

Для этой цели я добавил следующие записи в свой файл web.xml

<servlet>
    <servlet-name>springapp</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

...............
...............

<servlet-mapping>
    <servlet-name>springapp</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

Это перенаправит весь запрос на DispatcherServlet и в свой контекстный файл я добавил

<mvc:resources mapping="/css/**" location="/css/" />
<mvc:resources mapping="/docs/**" location="/docs/" />
<mvc:resources mapping="/images/**" location="/images/" />
<mvc:resources mapping="/js/**" location="/js/" />
<mvc:resources mapping="/themes/**" location="/themes/" />

, чтобы эти ресурсы были загружены из файловой системы.

Эти конфигурации работают нормально.Но сейчас у меня проблемы с механизмом отчетов BIRT.

Механизм отчетов BIRT использует некоторые jsp-файлы, расположенные в папке с именем webcontent, которая находится в корне приложения.Поскольку мы направляем весь запрос на DispatcherServlet, даже запрос на эти jsp-страницы направляется в весенний сервлет.Как я понимаю из некоторых постов, файлы jsp обычно обрабатываются org.apache.jasper.servlet.JspServlet, который зарегистрирован в файле web.xml Apache Tomcat и имеет сервлетное отображение следующим образом

<!-- The mapping for the JSP servlet -->
<servlet-mapping>
    <servlet-name>jsp</servlet-name>
    <url-pattern>*.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>jsp</servlet-name>
    <url-pattern>*.jspx</url-pattern>
</servlet-mapping>

Какие изменения ядолжен сделать в моем сервлете отображение для работы в этой среде?Мне нужно, чтобы файлы jsp обрабатывались сервлетом jsp по умолчанию, а не весенним сервлетом.Как мне этого добиться?

Для этого поста Я понял, что второй приоритет в сопоставлении сервлета - это префикс url, поэтому мой шаблон URL / для весеннего сервлета переопределяет значение по умолчаниюОтображение сервлета JSP, это предположение правильно?Если это правильно, то как это преодолеть?

Спасибо.

1 Ответ

1 голос
/ 27 апреля 2011

Типичное отображение DispatcherServlet равно <url-pattern>/</url-pattern>. В этом случае он по-прежнему обрабатывает все запросы, кроме запросов, обрабатываемых другими сервлетами (в частности, запросы к *.jsp), поэтому он должен решить проблему.

...