2013-04-14 1 views
1

Я не понимаю, почему я получаю 404 ошибки при попытке получить доступ к моему приложениюя не могу получить доступ к простому JSF проекта после deployement

мой index.xhtml в (Web Content)

В моем журнале I имеют никакой ошибки я создал свой проект, используя затмение: веб-динамический проект:

мой URL:

http://localhost:8080/jsf_getting_started/ 

Я попытался с затмением с котом (Run On Serv э).

Мой веб-XML

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
id="WebApp_ID" version="3.0"> 
<display-name>jsf_getting_started</display-name> 
<welcome-file-list> 
    <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> 
<context-param> 
    <param-name>com.sun.faces.expressionFactory</param-name> 
    <param-value>com.sun.el.ExpressionFactoryImpl</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>/faces/*</url-pattern> 
</servlet-mapping> 
<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>client</param-value> 
</context-param> 
<context-param> 
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name> 
    <param-value>resources.application</param-value> 
</context-param> 
<listener> 
    <listener-class>com.sun.faces.config.ConfigureListener</listener-class> 
</listener> 

+0

Какое название фляги? URL-адрес по умолчанию будет «http: // localhost: 8080/name_of_jar» без суффикса .jar. Url не имеет ничего общего с отображаемым именем, которое было бы определено в контексте context.xml. – atamanroman

ответ

0

Вам нужно добавить index.xhtml в welcome-file-list.

+0

Это не работает, я получаю пустую страницу, в то время как мой индекс содержит: \t \t akaliza

+0

Это зависит от его имени файла "home" ... not все называют его index.xhtml. –

1

Проблема заключается в том, что вы установили отображение Faces Servlet как /faces/* так, чтобы получить доступ к странице и быть разобран этого сервлета вы должны получить доступ к нему, как

http://localhost:8080/jsf_getting_started/faces/index.xhtml 

Но проблема с конфигурация /faces/* является то, что Faces Servlet даже обрабатывать не-JSF ресурсы, такие как изображения, JS, CSS скрипты и т.д.

наилучшим решением было бы изменить отображение на *.xhtml и удалить все страницы в приветственном списка файлов в есть только index.xhtml. Ваш файл web.xml будет выглядеть следующим образом (обратите внимание, что я просто размещая изменения, сделанные на детали, описанные в этом ответе):

<welcome-file-list> 
    <welcome-file>index.xhtml</welcome-file> 
    <!-- no need of the other files... --> 
</welcome-file-list> 

<servlet-mapping> 
    <servlet-name>Faces Servlet</servlet-name> 
    <!-- The relevant URL mapping when using Facelets and JSF --> 
    <url-pattern>*.xhtml</url-pattern> 
</servlet-mapping> 

После изменения файла web.xml, перестраивать свой проект, убедитесь, чтобы развернуть его с сервера Tomcat и повторите попытку.

+0

благодарит Луиджи, сейчас он работает – akaliza

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