Объявление пользовательских сервлетов PDF сталкивается с расширением.xhtml

Я пытаюсь реализовать пользовательский файл PDF сервлет (/fileprovider/name?param1=value&param2=otherValue) в веб-приложении JSF 2, но при объявлении web.xml приложение всегда добавляет .xhtml расширение для каждого запроса. Я считаю, что из-за DEFAULT_SUFFIX контекстно-пары.

<!-- ... -->
<context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.xhtml</param-value>
</context-param>
<context-param>
    <param-name>org.omnifaces.FACES_VIEWS_SCAN_PATHS</param-name>
    <param-value>/*.xhtml</param-value>
</context-param>

<servlet>
    <servlet-name>faces</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet>
    <servlet-name>MyPDFServlet</servlet-name>
    <servlet-class>com.company.servlet.MyPDFServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>MyPDFServlet</servlet-name>
    <url-pattern>/fileprovider/name</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>faces</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<!-- ... -->

Исключение:

FacesFileNotFoundException: /name.xhtml не найден в ExternalContext в качестве ресурса

Поэтому я считаю, что путь не отображается правильно, может быть, я что-то упустил.

Есть ли способ указать, что я хочу, чтобы конкретные пути указывали на пользовательские сервлеты без добавления .xhtml расширение?

0 ответов

Другие вопросы по тегам