2011-02-06 1 views
3

Я получил эту ошибку, когда я попытался получить доступ к своему сайту с помощью разработки http://localhost/home/index.html, который перенаправляет на http://localhost/home/views/main/index.xhtml:Tomcat ошибка: не найден в ExternalContext как ресурс

java.io.FileNotFoundException: /views/main/index*.xhtml Not Found in ExternalContext as a Resource 

Я использую Tomcat 7.0.8, Mojarra JSF 2.0.4 с Eclipse Helios. Я проверил файл развертывания WAR для файла index.xhtml, и он находится в файле WAR. Я также проверил каталог ../wtpwebapps/home/views/main и увидел, что Eclipse развернул файл index.xhtml.

StackTrace Я получил это:

07/02/2011 3:58:53 AM org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/home] threw exception 
java.lang.NullPointerException 
    at com.sun.faces.lifecycle.RestoreViewPhase.notifyAfter(RestoreViewPhase.java:301) 
    at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:114) 
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:306) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:383) 
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188) 
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:288) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:662) 

Я не знаю, почему я получаю вышеуказанную ошибку. Может ли кто-нибудь помочь?

ответ

1

Я решил проблему: это была проблема конфигурации с web.xml.

Я объявил версию WebAPP как 2,0 в web.xml вместо 3.0 для Tomcat 7.

+0

Что такое настройка? – BalusC

+1

Да, пожалуйста, опишите проблему? У меня схожие проблемы. – BernardMarx

+1

@BernardMarx: В то время я объявлял версию 'webapp' как' 2.0' в 'web.xml' вместо' 3.0' для Tomcat 7. Думаю, это было результатом отсутствия сон и слишком много кофеина! - :). Теперь я использую сервер Glassfish 3.1. Было бы слишком много работать, чтобы Tomcat работал правильно, особенно если вы используете EJB 3 и JPA 2 вместе с JSF 2. – ChuongPham

1

Я понятия не имею, как ваш код, который отвечает за перенаправление выглядеть, но

/views/main/index*.xhtml 

определенно не выглядит правильно. Что это за звездочка? Исправьте код, чтобы эта звездочка больше не выдавалась в идентификаторе вида.

+0

Я искал весь мой проект для индекса * .html, но ничего не придумывает. У меня нет атрибута идентификатора, поэтому я не знаю, откуда его получает JSF/Tomcat. Мое перенаправление довольно простое, код для него:

в файле HTML. Есть ли другие вещи, которые я могу проверить, например. Объявление конфигурации web.xml? – ChuongPham

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