2013-03-17 3 views
0

Я пытаюсь запустить JSF с JBoss (5.1), но у меня есть две проблемы. Либо я получаю исключение класса, которое не найдено для FaceletViewHandler, которое настроено в файле faces-config.xml, или я получаю бесконечное количество StackOverflowError.StackOverflowError при настройке JSF с JBoss

Ошибка:

00:48:30,767 ERROR [[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception 
java.lang.StackOverflowError 
.... 
at org.apache.catalina.core.ApplicationHttpRequest.setAttribute(ApplicationHttpRequest.java:279) 
... 

Я предполагаю, что это что-то делать с моей конфигурации web.xml или моим граням-config.xml

web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" 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_2_5.xsd"> 
    <display-name>test1</display-name> 
    <context-param> 
     <param-name>javax.faces.STATE_SAVING_METHOD</param-name> 
     <param-value>server</param-value> 
    </context-param> 
    <context-param> 
     <param-name>javax.faces.DEFAULT_SUFFIX</param-name> 
     <param-value>.xhtml</param-value> 
    </context-param> 
    <listener> 
     <listener-class>com.sun.faces.config.ConfigureListener</listener-class> 
    </listener> 
    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 
    <welcome-file-list> 
     <welcome-file>index.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>*.xhtml</url-pattern> 
    </servlet-mapping> 
</web-app> 

Я нашел «решение», в котором говорилось, что URL-адрес должен отличаться от суффикса по умолчанию - он не помог

Грани-config.xml:

<?xml version='1.0' encoding='UTF-8'?> 
<faces-config version="1.2" 
    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-facesconfig_1_2.xsd"> 
    <application> 
     <view-handler>com.sun.facelets.FaceletViewHandler</view-handler> 
    </application> 
</faces-config> 

в pom.xml

.... 
    <dependency> 
     <groupId>com.sun.facelets</groupId> 
     <artifactId>jsf-facelets</artifactId> 
     <version>1.1.15</version> 
    </dependency> 
.... 

Что не так?

Приветствия D3

ответ

0

Я нашел решение - ну хотя бы обходное решение. Я перешел с JDK7 на JDK6, теперь все работает.

Я думаю, что требуется снова настроить проект и тщательно изучить версии всех включенных библиотек.

1

StackOverflowError говорит нам, что потоки не хватает памяти на стеке. Возможно, вы shloud увеличиваете стек, доступный для потока, используя опцию -Xss JVM (например, -Xss256k или даже больше).

Вы должны установить его в run.conf.bat или run.conf.sh, в зависимости от вашей операционной системы.

Вы также можете попытаться сохранить ресурсы сервера, установив javax.faces.STATE_SAVING_METHOD с "server" на "client".

+0

Я полностью согласен вообще, но получаю бесконечное количество StackOverFlowError, конфигурация, похоже, вызывает нечто вроде цикла инфинитива, поэтому увеличение памяти не помогло бы. – ABX

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