Startup JSF

7 respostas
derheimen

Galera, estou com um problema.
Estou desenvolvendo uma aplicação usando Spring + Hibernate e JSF.
Verssão do tomcat-6.0.2.
Adicionei na pasta lib do meu tomcat os Jars: jsf-api e jsf-impl.
Diretório: C:\Des\Java\tomcat-6.0.2\lib
O tomcat esta inicializando sem erros, mas quando vou acessar a aplicação pelo browser, esta ocorrendo o seguinte erro:

Erro:

Caused by: java.lang.IllegalStateException: Application was not properly initialized at startup,
could not find Factory: javax.faces.application.ApplicationFactory
at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:263)
at com.sun.faces.util.MessageFactory.getApplication(MessageFactory.java:212)
at com.sun.faces.util.MessageFactory.getMessage(MessageFactory.java:101)
at com.sun.faces.util.MessageFactory.getMessage(MessageFactory.java:80)
at com.sun.faces.util.MessageUtils.getExceptionMessageString(MessageUtils.java:276)
at com.sun.faces.taglib.jsf_core.ViewTag.doStartTag(ViewTag.java:159)
at org.apache.jsp.login_jsp._jspx_meth_f_005fview_005f0(login_jsp.java:103)
at org.apache.jsp.login_jsp._jspService(login_jsp.java:77)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:390)
... 20 more

Alguém saberia me dizer o porque desse errro, pois não esotu conseguindo resolver.
Aqui esta a jsp que estou acessando, nela utilizo algumas tags do JSF, quando retiro essas tags, funciona sem problemas.
Por que não estou conseguindo utilizar as tags do JSF ?????

login.jsp

<html>
	<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
	<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
	<f:view>
		<f:loadBundle var="text" basename="resource"/>
		<head>
			<title>
				<h:outputLabel value="#{text['index.title']}"/>
			</title>
		</head>
		<body>
			<form action="/scap/j_security_check" method="POST">
		        <h1>
		        	<font color="#2121ff">
		        		<h:outputLabel value="#{text['index.subtitulo']}"/>
		        	</font>
		        </h1>
	        	<br/>
				<div align="center">
					<h:outputText value="Usuario: "/>
					<h:inputText id="j_username" size="20"/>
					<br>
					<h:outputText value="Senha: "/>
					<h:inputSecret id="j_password" size="20"/>
					<br>
					<input type="submit" value="Entrar"/>
				</div>
			</form>
			<br/><br/>
			<div class="footer">
				&copy; 2006 Ábaco Tecnologia de Informação. Todos os direitos reservados.<br/>
				Versão 0.01 (Versão de Desenvolvimento)
			</div>
		</body>
	</f:view>
</html>

Agradeço desde já.

7 Respostas

Ferryman

Como está seu web.xml? você fez o mapeamento do faces servlet? se fez tente chamar a sua pagina colocando a extenção minhapagina.jsf

derheimen

Olha como esta o meu 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>scap</display-name>

	<context-param>
		<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>ApplicationResources</param-value>
	</context-param>

	<filter>
		<filter-name>HibernateFilter</filter-name>
		<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>HibernateFilter</filter-name>
		<url-pattern>*.faces</url-pattern>
	</filter-mapping>

	<filter>
		<filter-name>ExtensionsFilter</filter-name>
		<filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>ExtensionsFilter</filter-name>
		<url-pattern>*.faces</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>ExtensionsFilter</filter-name>
		<url-pattern>/faces/*</url-pattern>
	</filter-mapping>

	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

	<!-- Faces Servlet -->
	<servlet>
		<servlet-name>FacesServlet</servlet-name>
		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<!-- Faces Servlet Mapping -->
	<servlet-mapping>
		<servlet-name>FacesServlet</servlet-name>
		<url-pattern>*.faces</url-pattern>
	</servlet-mapping>

	<session-config>
		<session-timeout>10</session-timeout>
	</session-config>

	<welcome-file-list>
		<welcome-file>start.html</welcome-file>
	</welcome-file-list>

	<security-constraint>
		<web-resource-collection>
			<web-resource-name>Página Inicial</web-resource-name>
			<url-pattern>/index.faces</url-pattern>
		</web-resource-collection>
		<auth-constraint>
			<role-name>manager</role-name>
		</auth-constraint>
	</security-constraint>

	<security-role>
		<role-name>manager</role-name>
	</security-role>

	<login-config>
		<auth-method>FORM</auth-method>
		<form-login-config>
			<form-login-page>/login.jsp</form-login-page>
			<form-error-page>/error.jsp</form-error-page>
		</form-login-config>
	</login-config>

</web-app>

Me ajuda ai por favor, pois não estou conseguindo resolver.

Fabio_Kung

acesse a sua página através da url …/login.faces e não …/login.jsp.

derheimen

Ainda estou com problemas tento inicializar minha tela da seguinte forma:

http://localhost:8080/scap/login.faces

Meu web.xml esta mapeado assim:

<!-- Faces Servlet -->
	<servlet>
		<servlet-name>FacesServlet</servlet-name>
		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<!-- Faces Servlet Mapping -->
	<servlet-mapping>
		<servlet-name>FacesServlet</servlet-name>
		<url-pattern>*.faces</url-pattern>
	</servlet-mapping>

Esta me retornando este errro:

root cause

java.lang.IllegalStateException: Application was not properly initialized at startup, could not find Factory: javax.faces.context.FacesContextFactory
javax.faces.FactoryFinder.getFactory(FactoryFinder.java:263)
javax.faces.webapp.FacesServlet.init(FacesServlet.java:142)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:212)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:818)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:624)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
java.lang.Thread.run(Thread.java:595)

Fabio_Kung

em vez de colocar os jars do jsf no lib do tomcat, tenta no WEB-INF/lib da sua aplicação.

fcamilo

Coloque todos os .jar que vem no diretório lib da distribuição binária do JSF + standard.jar e jstl.jar[1] no /WEB-INF/lib de sua aplicação.

[1] standard.jar e jstl.jar são os arquivos do Jakarta Taglibs: Standard.
http://jakarta.apache.org/site/downloads/downloads_taglibs-standard.cgi

Abraço!

F

Flavio estou com esse problemas só que no ambiente do OC4J, essa merda!!!
Tem alguma ideia para resolver isso?

Criado 30 de novembro de 2006
Ultima resposta 16 de jan. de 2009
Respostas 7
Participantes 5