Seam + IllegalStateException: Preciso de ajuda

6 respostas
Marques

Colegas,

Quando vou rodar a minha aplicação recebo o erro abaixo. Como aparentemente o erro não acontece em nenhuma classe da minha app, o erro pode estar na configuração do meu xml?

Alguma luz, qualquer uma que seja, para resolver esse problema?

Muito obrigado,

Marques

Oct 16, 2011 10:13:09 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [Faces Servlet] in context with path [/loja] threw exception
java.lang.IllegalStateException
	at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:463)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:272)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
	at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
	at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
	at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:244)
	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.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:468)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:558)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:259)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:281)
	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)
O 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_2_5.xsd"
	id="WebApp_ID" version="2.5">
	<display-name>loja</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>admin.html</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>*.seam</url-pattern>
	</servlet-mapping>
	<context-param>
		<param-name>org.richfaces.SKIN</param-name>
		<param-value>japanCherry</param-value>
	</context-param>
	
	<listener>
		<listener-class>org.jboss.seam.servlet.SeamListener</listener-class>
	</listener>

	<!-- seam -->
	<filter>
		<filter-name>Seam Filter</filter-name>
		<filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>Seam Filter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<servlet>
		<servlet-name>Seam Resource Servlet</servlet-name>
		<servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>Seam Resource Servlet</servlet-name>
		<url-pattern>/seam/resource/*</url-pattern>
	</servlet-mapping>
	<context-param>
		<param-name>facelets.DEVELOPMENT</param-name>
		<param-value>true</param-value>
	</context-param>
	<context-param>
		<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
		<param-value>.xhtml</param-value>
	</context-param>
	<security-constraint>
		<display-name>Restrict raw XHTML Documents</display-name>
		<web-resource-collection>
			<web-resource-name>XHTML</web-resource-name>
			<url-pattern>*.xhtml</url-pattern>
		</web-resource-collection>
		<auth-constraint />
	</security-constraint>
</web-app>

6 Respostas

A

cara,

aparentemente seu web.xml tem nada errado nao, posta seu pages.xml e components.xml.

t+

Marques
components.xml
<?xml version="1.0" encoding="UTF-8"?>
<components xmlns="http://jboss.com/products/seam/components"
xmlns:core="http://jboss.com/products/seam/core"
xmlns:persistence="http://jboss.com/products/seam/persistence"
xmlns:transaction="http://jboss.com/products/seam/transaction"
xmlns:security="http://jboss.com/products/seam/security"
xmlns:ui="http://jboss.com/products/seam/ui"
xmlns:web="http://jboss.com/products/seam/web"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation=
"http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.2.xsd
http://jboss.com/products/seam/persistence http://jboss.com/products/seam/persistence-2.2.xsd
http://jboss.com/products/seam/transaction http://jboss.com/products/seam/transaction-2.2.xsd
http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.2.xsd
http://jboss.com/products/seam/ui http://jboss.com/products/seam/ui-2.2.xsd
http://jboss.com/products/seam/web http://jboss.com/products/seam/web-2.2.xsd
http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.2.xsd">

<core:manager conversation-timeout="120000"
concurrent-request-timeout="500"
conversation-id-parameter="cid"/>

<web:multipart-filter create-temp-files="true" max-request-size="100000000" url-pattern="*.seam"/>

<transaction:entity-transaction entity-manager="#{em}"/>
<persistence:entity-manager-factory name="lojaPU"/>
<persistence:managed-persistence-context
name="em"
auto-create="true"
entity-manager-factory="#{lojaPU}"/>

<ui:jpa-entity-loader entity-manager="#{em}" />

<security:identity authenticate-method="#{authenticator.authenticate}"/>
</components>
pages.xml
<?xml version="1.0" encoding="UTF-8"?>
<pages xmlns="http://jboss.com/products/seam/pages" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.2.xsd"
	no-conversation-view-id="/home.xhtml" login-view-id="/login.xhtml">

	<page view-id="*">
		<navigation>
			<rule if-outcome="home">
				<render view-id="/home.xhtml" />
			</rule>
			<rule if-outcome="homeAdmin">
				<render view-id="/homeAdmin.xhtml" />
			</rule>
			<rule if-outcome="loginLoja">
			<render view-id="/loginLoja.xhtml" />
		</rule>
			<rule if-outcome="lojaAction.doSearch">
				<render view-id="/home.xhtml" />
			</rule>
		</navigation>

		<navigation from-action="#{lojaAction.init}">
			<render view-id="/home.xhtml" />
		</navigation>

		<navigation from-action="#{lojaAction.searchByCriteria}">
			<render view-id="/home.xhtml" />
		</navigation>

		<navigation from-action="#{contatoLojaAction.showFaleConosco}">
			<render view-id="/pages/adm/faleConosco.xhtml" />
		</navigation>

		<navigation from-action="#{clienteAction.showClienteCadastro}">
			<render view-id="/pages/adm/clienteCadastro.xhtml" />
		</navigation>

		<navigation from-action="#{carrinhoAction.showCarrinho}">
			<render view-id="/pages/loja/carrinho.xhtml" />
		</navigation>

		<navigation from-action="#{clienteCompraAction.showPedidosCliente}">
			<render view-id="/pages/loja/clienteCompras.xhtml" />
		</navigation>

		<navigation from-action="#{loginLojaAction.doExit}">
			<render view-id="/home.xhtml" />
		</navigation>
	</page>

	<exception class="org.jboss.seam.framework.EntityNotFoundException">
		<redirect view-id="/error.xhtml">
			<message severity="warn">Record not found</message>
		</redirect>
	</exception>

	<exception class="javax.persistence.EntityNotFoundException">
		<redirect view-id="/error.xhtml">
			<message severity="warn">Record not found</message>
		</redirect>
	</exception>

	<exception class="javax.persistence.EntityExistsException">
		<redirect view-id="/error.xhtml">
			<message severity="warn">Duplicate record</message>
		</redirect>
	</exception>

	<exception class="javax.persistence.OptimisticLockException">
		<end-conversation />
		<redirect view-id="/error.xhtml">
			<message severity="warn">Another user changed the same data, please try again</message>
		</redirect>
	</exception>

	<exception class="org.jboss.seam.security.AuthorizationException">
		<redirect view-id="/error.xhtml">
			<message severity="error">You don't have permission to access this resource</message>
		</redirect>
	</exception>

	<exception class="org.jboss.seam.security.NotLoggedInException">
		<redirect view-id="/login.xhtml">
			<message severity="warn">#{messages['org.jboss.seam.NotLoggedIn']}</message>
		</redirect>
	</exception>

	<exception class="javax.faces.application.ViewExpiredException">
		<redirect view-id="/error.xhtml">
			<message severity="warn">Your session has timed out, please try again</message>
		</redirect>
	</exception>

	<exception class="org.jboss.seam.ConcurrentRequestTimeoutException"
		log-level="trace">
		<http-error error-code="503" />
	</exception>

	<exception>
		<redirect view-id="/error.xhtml">
			<message severity="error">Unexpected error, please try again</message>
		</redirect>
	</exception>

</pages>
A

esse erro ocorre qdo?

Marques

Quando eu tento acessar a app pela primeira vez depois de um certo tempo. Depois q aparece esse erro eu tento novamente e entra sem problemas…

A

cara,

tenta isso ai (vo te passar o que eu faço num projeto meu)

criei uma pagina index.jsp, com o conteudo (vc vai mandar para sua primeira pagina, no meu caso login.xhtml)

<jsp:forward page="login.seam"/>

e coloque esse trecho no pages.xml (/paginas, é uma pastas abaixo do WebContent, aonde fica meus xhtml)

<page view-id="/paginas/*" login-required="true" />

ve te ajuda ai

Marques

vou tentar. de qualquer forma muito obrigado pela ajuda!

Criado 16 de outubro de 2011
Ultima resposta 16 de out. de 2011
Respostas 6
Participantes 2