Galera, estou desenvolvendo um projeto WEB que utiliza Maven. O problema é que quando eu rodo o projeto, ele não abre o WELCOME-FILE, que eu defini no web.xml, automaticamente, eu tenho que digitar manualmente o caminho na barra de endereços para abrir. Alguém sabe a solução para isso?
<?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>BB_TVM</display-name>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<welcome-file-list>
<welcome-file>paginas/index.xhtml</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>/*</url-pattern>
</servlet-mapping>
</web-app>
Tenho o mesmo problema…E só acontece com jsf…Se eu definir um jsp na lista de welcome, não dá esse problema.
Fala meu camarada…
Encontrei a solução na net…testei e funfou…
Seguinte, no seu web.xml você deve ter apenas isso:
<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>
Nada de :
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
ou
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
Espero ter ajudado
Abraço
Opa, Bom dia pessoal…
cara não sei se você resolve já…
mais eu faria da seguinte forma
<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>*.html</url-pattern>
</servlet-mapping>
no seu index.jsp é so inderir o seguinte codigo.
<%request.sendRedirect("web/pages/home.html");%>
acho bem tranquilo fazer dessa forma é o index só vai redirecionar mesmo cara… assim fica bem rápido…
Continuou igual. Quando eu rodo o projeto ele não abre automaticamente meu INDEX.XHTML. Eu tenho que colocar o endereço manualmente na barra de endereços.
Vamos lá meu amigo posta seu web.xml para nos vermos…
Esse é meu web.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>BB_TVM</display-name>
<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</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>
</web-app>
Por alguma razão misteriosa e sombria, o container/application server não entende que precisa direcionar a requisição para um arquivo Facelets (/faces/* ou .jsf).
Isso obriga a criar coisas como o bruno_bert sugeriu ou, ainda, a gambiarra que o 13 sugeriu.