Problema com Spring + JSF 2 + ViewScope

9 respostas
D

Galera estou tentando usar @ViewScope mais está dando um erro, vejam

ManagedBean

@ManagedBean
@ViewScoped
public class ProjetoController implements Serializable{

	private static final long serialVersionUID = 1L;
	
	ApplicationContext context = new ClassPathXmlApplicationContext("conexao.xml");	
	ProjetoDAO projetoDAO = (ProjetoDAO) context.getBean("projetoDAO");

ERRO

Caused by: java.io.NotSerializableException: org.springframework.context.support.ClassPathXmlApplicationContext
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
	at java.util.HashMap.writeObject(HashMap.java:1001)
	at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
	at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
	at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1346)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1154)
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
	at java.util.HashMap.writeObject(HashMap.java:1001)
	at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
	at com.sun.faces.renderkit.ClientSideStateHelper.doWriteState(ClientSideStateHelper.java:293)
	at com.sun.faces.renderkit.ClientSideStateHelper.writeState(ClientSideStateHelper.java:163)
	at com.sun.faces.renderkit.ResponseStateManagerImpl.getViewState(ResponseStateManagerImpl.java:136)
	... 28 more
06/12/2011 13:54:33 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [Faces Servlet] in context with path [/chamados] threw exception
java.lang.IllegalStateException: CDATA tags may not nest
	at com.sun.faces.renderkit.html_basic.HtmlResponseWriter.startCDATA(HtmlResponseWriter.java:630)
	at javax.faces.context.ResponseWriterWrapper.startCDATA(ResponseWriterWrapper.java:172)
	at javax.faces.context.PartialResponseWriter.startError(PartialResponseWriter.java:334)
	at org.primefaces.context.PrimePartialResponseWriter.startError(PrimePartialResponseWriter.java:108)
	at com.sun.faces.context.AjaxExceptionHandlerImpl.handlePartialResponseError(AjaxExceptionHandlerImpl.java:193)
	at com.sun.faces.context.AjaxExceptionHandlerImpl.handle(AjaxExceptionHandlerImpl.java:119)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:119)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:313)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:269)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
	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)

Alguém saberia me dizer o que pode ser?

9 Respostas

A

Parece erro no View, posta o teu XHTML (ou jsp se for o caso).

D

XHTML

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//Dp:column XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/Dp:column/xhtml1-strict.dp:column">
<html xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.prime.com.tr/ui"
	xmlns:ui="http://java.sun.com/jsf/facelets" lang="pt-br">

<h:head>
	<title>SGC - Gest&atilde;o de Chamados</title>
	<link rel="shortcut icon" href="imagens/isdra.ico"></link>
</h:head>
<h:body>
	<f:view encoding="UTF-8">
		<p:growl showDetail="true" id="messages"/>
		<p:layout fullPage="true">

			<p:layoutUnit position="top" height="38" resizable="false"	closable="false" collapsible="false" styleClass="degrade">
				<h:graphicImage url="imagens/topo.png" />
			</p:layoutUnit>

			<p:layoutUnit id="centro" position="center" scrollable="true" style="font-size:7pt;" >
				<h:form>  
				    <p:growl id="messages"/>
				    <p:menubar autoSubmenuDisplay="true">  
				        <p:submenu label="Chamados" icon="img-menu-chamados">  
				            <p:submenu label="Configura&ccedil;&otilde;es" icon="img-menu-configuracao">  
				                <p:menuitem value="Cadastrar Projetos" actionListener="#{menuController.mostrarProjeto}" action="#{projetoController.carregaLista}" update="centro" />  
				                <p:menuitem value="Cadastrar Status"  onclick="mostraStatus()"/>
				                <p:menuitem value="Cadastrar Classes" actionListener="#{menuController.mostrarClasse}" action="#{classeController.carregaLista}" update="centro" />
				                <p:menuitem value="Cadastrar Equipes" onclick="mostraEquipe()"/>
				                <p:menuitem value="Cadastrar Prioridades" onclick="mostraPrioridade()"/>
				                 <p:menuitem value="Cadastrar Departamentos" onclick="mostraDepartamento()"/> 
				            </p:submenu>  
				            <p:menuitem value="Listar Chamados" url="#" />  
				            <p:menuitem value="Cadastrar Chamado" url="#" />
				        </p:submenu>
				  
				        <p:submenu label="Monitores" icon="img-menu-monitor">  
				            <p:menuitem value="Monitor T&eacute;cnicos" url="#" ></p:menuitem>  
				            <p:menuitem value="Monitor Atendimentos" url="#" ></p:menuitem>  
				        </p:submenu>
				  
				        <p:submenu label="Relat&oacute;rios" icon="img-menu-relatorio">
				            <p:menuitem value="Horas Trabalhadas" url="#" />
				            <p:menuitem value="Horas Trabalhadas Sint&eacute;tico" url="#" />
				            <p:menuitem value="Demonstrativo Horas" url="#" />
				            <p:menuitem value="Di&aacute;rio Atividades" url="#" />
				        </p:submenu>
				    </p:menubar>  
				</h:form>  
				<p:panel style="border:0px;">
					
					<ui:insert name="menu">
						<ui:include src="/WEB-INF/projeto/projeto.xhtml" />
					</ui:insert>

					<ui:insert name="menu">
						<ui:include src="/WEB-INF/classes/classe.xhtml" />
					</ui:insert>
				</p:panel>
			</p:layoutUnit>
		</p:layout>
		
		<ui:insert name="login">
			<ui:include src="/WEB-INF/login/login.xhtml"/>
		</ui:insert>
		
	</f:view>
</h:body>
</html>
A

Aparentemente normal, mas tem uns includes aí, tenta remover, e vê se funciona. O problema pode ser no conteúdo de um deles.

D

Mais será que pode ser na página? Porque se eu colocar RequestScope funciona blz

M

O Spring Não Suporta o View.
Pode ser Isto.
Na Net tem como implementar tudo isso.

D

Mr Style era isso mesmo, fiz aqui a implementação do view do spring, porém agora nenhum método do meu MB é chamado, sabe me dizer pq?

A

Estou com o mesmo problema:

java.lang.IllegalStateException: CDATA tags may not nest

Você conseguiu resolver?

A

Resolvido!

O problema estava no meu xhtml, eu estava tentando acessar uma propriedade que não existia na classe.

Errado:
fetchValue="#{moeda.codigo}"

Correto:
fetchValue="#{moeda.id}"

Isso resolveu o problema do: java.lang.IllegalStateException: CDATA tags may not nest

D

apalmeira:
Estou com o mesmo problema:

java.lang.IllegalStateException: CDATA tags may not nest

Você conseguiu resolver?

ele da esse erro em pra 2 motivos…

ou vc está acessando uma propriedade que não existe como o apalmeira disse…
ou vc esqueceu de usar o “#{}” (value="#{bean.propriedade}") … tentando assim value=“bean.propriedade”…

é mto bestinha… mas as vezes a gente acaba esquecendo… e não percebe q esqueceu do sharp e das chaves :smiley:

Criado 6 de dezembro de 2011
Ultima resposta 14 de ago. de 2012
Respostas 9
Participantes 5