2015-03-26 7 views
2

У меня есть два веб-приложения (web-module1.war & web-module2.war), и я хочу использовать веб-фрагмент (web-core.jar) для общего объявления сервлета, такого как FacesServlet.FacesServlet не работает в веб-фрагменте

Когда я объявляю FacesServlet в web.xml не проблема, но когда я перехожу это заявление на веб-fragment.xml я получаю эту ошибку:

java.lang.IllegalStateException: No Factories configured for this Application. 
This happens if the faces-initialization does not work at all - make sure that you properly include all configuration settings necessary for a basic faces application and that all the necessary libs are included. Also check the logging output of your web application and your container for any exceptions! 
If you did that and find nothing, the mistake might be due to the fact that you use some special web-containers which do not support registering context-listeners via TLD files and a context listener is not setup in your web.xml. 
A typical config looks like this; 
<listener> 
    <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class> 
</listener> 

Я не имею эту проблему с другой сервлет/объявление фильтра!

Веб-фрагмент.xml находится в папке META-INF web-core.jar, а также в файле faces-config.xml.

Веб-core.jar объявлен как зависимость maven (я могу найти его в WEB-INF/lib).

Это web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="3.0" metadata-complete="false" 
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    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"> 

    <absolute-ordering> 
     <name>core_web_fragment</name> 
    </absolute-ordering> 

</web-app> 

И веб-fragment.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-fragment metadata-complete="true" 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-fragment_3_0.xsd"> 

    <name>core_web_fragment</name> 

    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring-*.xml</param-value> 
    </context-param> 
    <!-- /Spring Config --> 
    <context-param> 
     <param-name>javax.faces.PROJECT_STAGE</param-name> 
     <param-value>Development</param-value> 
    </context-param> 
    <context-param> 
     <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name> 
     <param-value>true</param-value> 
    </context-param> 
    <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>*.xhtml</url-pattern> 
    </servlet-mapping> 

    <welcome-file-list> 
     <welcome-file>inscription.xhtml</welcome-file> 
    </welcome-file-list> 
</web-fragment> 

Я использую Tomcat7

ответ

5

Если вы используете реализацию Apache MyFaces JSF это a bug

Поэтому u должен изменить его (например, использовать MOJARRA)

+0

Да, вы правы, а Моджара работает нормально, –

Смежные вопросы