2015-11-26 6 views
1

Я уже успешно использую nice omnifaces-lib (1.12) с некоторыми из его функций-util. теперь я хочу попробовать функцию faceviews для неограниченных URL-адресов. после прочтенияURL-адреса без ограничений с OmniFaces FacesView не работает в 1.12

http://showcase.omnifaces.org/facesviews/ExtensionlessURLs

и добавив волшебную линию

<context-param> 
    <param-name>org.omnifaces.FACES_VIEWS_SCAN_PATHS</param-name> 
    <param-value>/*.xhtml</param-value> 
</context-param> 

в web.xml, не казаться иметь никакого эффекта. серверная консоль также ничего не говорит о новой конфигурации.

по телефону http://localhost:8080/TestApp/test результаты в запрошенном ресурсе недоступны, а http://localhost:8080/TestApp/test.jsf работает должным образом. я также попытался примеры из

http://omnifaces.org/docs/javadoc/2.2/org/omnifaces/facesviews/package-summary.html

есть ли (конфигурация) -эмиссионный? спасибо за любой совет.

Я использую mojarra 2.2.8 и omnifaces 1.12 и tomcat 8. У меня нет других jsf-libs, таких как вложенные или помеченные.

web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
id="WebApp_ID" version="3.1"> 
<display-name>Test</display-name> 
<welcome-file-list> 
    <welcome-file>index.xhtml</welcome-file> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>default.html</welcome-file> 
    <welcome-file>default.htm</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
</welcome-file-list> 
<servlet> 
    <servlet-name>Faces Servlet</servlet-name> 
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <url-pattern>/javax.faces.resource/*</url-pattern> 
    <url-pattern>*.jsf</url-pattern> 
    <url-pattern>*.xhtml</url-pattern> 
</servlet-mapping> 

<context-param> 
    <param-name>javax.faces.PROJECT_STAGE</param-name> 
    <param-value>Development</param-value> 
    <!-- param-value>Production</param-value --> 
</context-param> 
<context-param> 
    <description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description> 
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name> 
    <param-value>server</param-value> 
</context-param> 
<context-param> 
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name> 
    <param-value>resources.application</param-value> 
</context-param> 
<context-param> 
    <param-name>javax.faces.FACELETS_DEVELOPMENT</param-name> 
    <param-value>true</param-value> 
</context-param> 
<context-param> 
    <param-name>org.omnifaces.FACES_VIEWS_SCAN_PATHS</param-name> 
    <param-value>/*.xhtml</param-value> 
</context-param> 
<listener> 
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class> 
</listener> 


</web-app> 

ответ

1

Это была моя ошибка. Файл /META-INF/services/javax.servlet.ServletContainerInitializer исчез во время раскола 1.10. Этот файл содержит инструкцию, позволяющую контейнеру запускать класс org.omnifaces.facesviews.FacesViewsInitializer во время запуска, который, в свою очередь, отвечает за сканирование и регистрацию файлов без расширения. Он отлично работает во всех версиях 2.x, а последняя версия 1.x, где она работала, - 1.8.3.

Добавлено в this commit и выпущена новая версия 1.12.1. Он доступен here в Maven.

+0

это замечательно. большое спасибо! – Steve

+0

Добро пожаловать. – BalusC

+0

@BalusC hey, extensionless отвечает кодом статуса 301, например, для ссылок, которые добавляются через javascript и для которых расширение не было удалено. Я не знаю, предназначено это или нет, и я хотел сообщить вам. Мне пришлось изменить некоторые js сегодня, чтобы заставить все работать, как и раньше, без расширения. – Ced