Gerenciar menu em ajax primefaces

671 views
Skip to first unread message

Diogo Soares

unread,
Dec 5, 2011, 8:08:18 AM12/5/11
to jav...@googlegroups.com
Bom dia Galera, blz?

Seguinte to integrando umas telas para a página principal do sistema e estou com uma dúvida...

Minhas telas ficam todas dentro do WEB-INF e dentro de sua determaninada pasta. O sistema é todo em ajax, então na pasta principal as telas estão escondidas através do hidden ou tbm posso usar o visible do panel, o problema é que mesmo usando o hidden ou setando para visible=false todas vão passar pelo init() e carregar os grids, isso perderá um pouco a performace do sistema, como eu poderia fazer para gerenciar melhor essa parte do sistema?

Deu pra entender minha necessidade? ficou um pouco confuso...

---------------------------------------------------

Diogo S. Soares
Grupo Isdra
Setor: TI
Desenvolvedor Java
Ramal: 287

Arthur Franco Ferreira

unread,
Dec 5, 2011, 8:16:37 AM12/5/11
to jav...@googlegroups.com
Use o rendered. Nos componentes que você não quer que carreguem, use rendered apontando para um atributo booleano no seu ManagedBean. Quando você quiser que ele seja exibido, basta mudar esse atributo no seu ManagedBean e ele será renderizado..

Arthur Franco Ferreira
Analista Desenvolvedor Web Java Pleno
Licenciado em Computação
UNILASALLE-RJ




2011/12/5 Diogo Soares <diogo....@isdra.com.br>

--
Você recebeu esta mensagem por que é membro do  Javasf
http://groups.google.com/group/javasf

Conheça também o Java Brazil: http://groups.google.com/group/thejavabrazil

Diogo Soares

unread,
Dec 5, 2011, 8:38:23 AM12/5/11
to jav...@googlegroups.com
Muito obrigado Arthur era isso mesmo ficou perfeito e muito rápido. (y)


----- Mensagem original -----
De: "Arthur Franco Ferreira" <arcan...@gmail.com>
Para: jav...@googlegroups.com
Enviadas: Segunda-feira, 5 de Dezembro de 2011 11:16:37
Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

Use o rendered. Nos componentes que você não quer que carreguem, use rendered apontando para um atributo booleano no seu ManagedBean. Quando você quiser que ele seja exibido, basta mudar esse atributo no seu ManagedBean e ele será renderizado..

Diogo Soares

unread,
Dec 5, 2011, 8:43:36 AM12/5/11
to jav...@googlegroups.com
Só fiquei com uma dúvida, tipo na hora que eu vou clicar no menu coloquei um rendered="#{projetoController.carregar == true}" para carregar a lista mais ele escondeu o item do menu

---------------------------------------------------

Diogo S. Soares
Grupo Isdra
Setor: TI
Desenvolvedor Java
Ramal: 287

----- Mensagem original -----
De: "Diogo Soares" <diogo....@isdra.com.br>
Para: jav...@googlegroups.com
Enviadas: Segunda-feira, 5 de Dezembro de 2011 11:38:23

Bruno Maomeh

unread,
Dec 5, 2011, 9:10:20 AM12/5/11
to jav...@googlegroups.com

Diogo Soares

unread,
Dec 5, 2011, 11:13:58 AM12/5/11
to jav...@googlegroups.com
Pessoal não ta rolando, devo estar aplicando de forma errada, vejam como estou fazendo

.xhtml
<p:panel id="panelCadastroProjeto" style="border:0px;" rendered="#{projetoController.carregar}" >

ManagedBean com RequestScope

private boolean carregar;

@PostConstruct{
if(carregar == true){
projetoBean = new ProjetoBean();
listaProjetoBean = projetoDAO.selectProjetoListAll();
}
}

get e sets do carregar


.xhtml Menu
<p:menuitem value="Cadastrar Projetos" onclick="mostraProjetos()" rendered="#{projetoController.carregar == true}"/>


----- Mensagem original -----
De: "Bruno Maomeh" <bruno...@gmail.com>
Para: jav...@googlegroups.com
Enviadas: Segunda-feira, 5 de Dezembro de 2011 12:10:20

Arthur Franco Ferreira

unread,
Dec 5, 2011, 11:22:30 AM12/5/11
to jav...@googlegroups.com
Sendo o seu carregar um atributo booleano, você não precisa igualar com true na expression language. Basta fazer isso aqui:

<p:menuitem value="Cadastrar Projetos" onclick="mostraProjetos()" rendered="#{projetoController.carregar}" />

O seu código não está incompleto não? Ou você colocou o @PostConstruct no if direto?

Diogo Soares

unread,
Dec 5, 2011, 11:39:20 AM12/5/11
to jav...@googlegroups.com
Coloquei somente a parte onde vai carregar a lista. O que eu não entendi é onde que eu vou mudar o status do boolean?

---------------------------------------------------

Diogo S. Soares
Grupo Isdra
Setor: TI
Desenvolvedor Java
Ramal: 287

----- Mensagem original -----


De: "Arthur Franco Ferreira" <arcan...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Segunda-feira, 5 de Dezembro de 2011 14:22:30


Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

Sendo o seu carregar um atributo booleano, você não precisa igualar com true na expression language. Basta fazer isso aqui:

<p:menuitem value="Cadastrar Projetos" onclick="mostraProjetos()" rendered="#{projetoController.carregar}" />

O seu código não está incompleto não? Ou você colocou o @PostConstruct no if direto?

Arthur Franco Ferreira

unread,
Dec 5, 2011, 11:38:46 AM12/5/11
to jav...@googlegroups.com
O status do boolean vai mudar na ação que você disparar que faz exibir os componentes. Por exemplo, ao clicar em um botão que irá exibir o componente.

Agora, se o caso for de permissão, por exemplo, no método do @PostConstruct você recupera a permissão, verifica se ele tem acesso e, se tiver, você coloca o boolean como true. Senão, false.

Diogo Soares

unread,
Dec 5, 2011, 12:16:01 PM12/5/11
to jav...@googlegroups.com
Arthur desde já agradeço essa força que ta me dando ai, desculpe minha ignorancia mais to com mais um probleminha...


1- Coloquei o rendered do tipo boolean no panel do formulario e um if no init() para não executar o list,até ai blz
2- No link do menu coloquei um actionListener que seta o boolean pra true, mais ele acontece depois do init() ai o if nunca vai estar como true

----- Mensagem original -----
De: "Arthur Franco Ferreira" <arcan...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Segunda-feira, 5 de Dezembro de 2011 14:38:46


Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

O status do boolean vai mudar na ação que você disparar que faz exibir os componentes. Por exemplo, ao clicar em um botão que irá exibir o componente.

Agora, se o caso for de permissão, por exemplo, no método do @PostConstruct você recupera a permissão, verifica se ele tem acesso e, se tiver, você coloca o boolean como true. Senão, false.

Arthur Franco Ferreira

unread,
Dec 5, 2011, 12:33:17 PM12/5/11
to jav...@googlegroups.com
Então retire o if do PostConstruct e não preencha a lista ali, deixe-a vazia. Só quando você invocar o actionListener é que você vai preencher a lista E vai setar true na variável booleana.

Diogo Soares

unread,
Dec 5, 2011, 12:51:19 PM12/5/11
to jav...@googlegroups.com
Tamo quase lá, hehehe

Fiz como vc falou, retirei o carregamento do init() coloquei no mesmo método onde seto o boolean para true, blz debugando ele entra faz tudo mais não mostra o formulário na tela, parece que ele não sabe que o rendered está true, fiz um teste com update mais tbm não rolou

----- Mensagem original -----
De: "Arthur Franco Ferreira" <arcan...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Segunda-feira, 5 de Dezembro de 2011 15:33:17


Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

Então retire o if do PostConstruct e não preencha a lista ali, deixe-a vazia. Só quando você invocar o actionListener é que você vai preencher a lista E vai setar true na variável booleana.


Arthur Franco Ferreira

unread,
Dec 5, 2011, 12:51:30 PM12/5/11
to jav...@googlegroups.com
No link que você colocou o actionListener, você colocou o update="idDaListaQueVocêQuerRenderizar" ?

Diogo Soares

unread,
Dec 5, 2011, 1:04:43 PM12/5/11
to jav...@googlegroups.com
Sim, mais não mostra

<p:menuitem value="Cadastrar Projetos" actionListener="#{projetoController.mostrar}" update="tabelaProjeto"/>

----- Mensagem original -----


De: "Arthur Franco Ferreira" <arcan...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Segunda-feira, 5 de Dezembro de 2011 15:51:30


Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

No link que você colocou o actionListener, você colocou o update="idDaListaQueVocêQuerRenderizar" ?


Arthur Franco Ferreira

unread,
Dec 6, 2011, 5:53:17 AM12/6/11
to jav...@googlegroups.com
Cola aqui o código do teu xhtml.

Diogo Soares

unread,
Dec 6, 2011, 6:08:31 AM12/6/11
to jav...@googlegroups.com
Bom dia Arthur,

Consegui resolver ontem no final do dia, eu tinha que dar o update no "parent" do rendered, então eu deixei o rendered no form e atualizei o panel, segundo essa dica.
http://www.rponte.com.br/2010/12/01/problema-do-rendered-dinamico-com-jsf/

Só que estou com uma pequena dúvida, no caso todas minhas telas estarão com rendered=false onde estarão escondidas, ai quando eu clicar no botão eu irei passar o rendered para true e mostrar a página, fiz isso com uma tela funcionou, mais quando fui abrir a segunda ficaram as duas abertas, claro que terei que setar a outra para false novamente, o problema que estou tendo é como vou fazer isso se são em managedBean diferentes?

----- Mensagem original -----
De: "Arthur Franco Ferreira" <arcan...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Terça-feira, 6 de Dezembro de 2011 8:53:17


Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

Cola aqui o código do teu xhtml.


Arthur Franco Ferreira

unread,
Dec 6, 2011, 6:15:22 AM12/6/11
to jav...@googlegroups.com
Isso é um típico pensamento de Action-based Framework, hehe. Lembre-se que JSF é um Component-based e, portanto, são os seus componentes quem acessam a aplicação, não somente a sua navegação. Qualquer componente que faça um acesso a um método ou a uma propriedade em um ManagedBean, vai acessá-lo ao ser renderizado porque eles fazem parte do ciclo de vida do JSF.

Quando você sai de uma página e vai para outra, há a fase de validação e tratamento de renderização dos componentes, portanto, ele acessa o ManagedBean "da página anterior".

Você tem um ManagedBean para tratar do menu? Se não tiver, é uma boa idéia ter. Aí você deixa o controle de exibição das páginas/panels nesse ManagedBean que vai ser comum ao menu em si e não a uma página.

Entendeu?

Arthur Franco Ferreira
Analista Desenvolvedor Web Java Pleno
Licenciado em Computação
UNILASALLE-RJ




2011/12/6 Diogo Soares <diogo....@isdra.com.br>

Diogo Soares

unread,
Dec 6, 2011, 6:29:15 AM12/6/11
to jav...@googlegroups.com
Valeu Arthur entendi sim, vou tentar fazer aqui qualquer dúvida eu respondo denovo, vlw mesmo!

----- Mensagem original -----
De: "Arthur Franco Ferreira" <arcan...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Terça-feira, 6 de Dezembro de 2011 9:15:22


Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

Isso é um típico pensamento de Action-based Framework , hehe. Lembre-se que JSF é um Component-based e, portanto, são os seus componentes quem acessam a aplicação, não somente a sua navegação. Qualquer componente que faça um acesso a um método ou a uma propriedade em um ManagedBean, vai acessá-lo ao ser renderizado porque eles fazem parte do ciclo de vida do JSF.

Quando você sai de uma página e vai para outra, há a fase de validação e tratamento de renderização dos componentes, portanto, ele acessa o ManagedBean "da página anterior".

Você tem um ManagedBean para tratar do menu? Se não tiver, é uma boa idéia ter. Aí você deixa o controle de exibição das páginas/panels nesse ManagedBean que vai ser comum ao menu em si e não a uma página.

Entendeu?


Diogo Soares

unread,
Dec 6, 2011, 8:09:56 AM12/6/11
to jav...@googlegroups.com
Consegui fazer aqui Arthur, só estou com um problema, quando carrego o dataTable após setar o rendered para true ele mostra certinho, só que quando eu for fazer a paginação eu não tenho mais o carregar da lista no init() ai ele não carrega a segunda página! Como eu poderia fazer para continuar a paginação? pois não achei nenhum método no datatable que fizesse isso!

----- Mensagem original -----
De: "Diogo Soares" <diogo....@isdra.com.br>
Para: jav...@googlegroups.com

Enviadas: Terça-feira, 6 de Dezembro de 2011 9:29:15

Arthur Franco Ferreira

unread,
Dec 6, 2011, 9:26:31 AM12/6/11
to jav...@googlegroups.com
Você disse que está trabalhando com escopo de Request, certo? Já pensou em considerar usar o View? Neste caso, ele mantém a lista carregada.

Se for realmente necessário que você utilize o Request, toda vez que você acessar um método no managedBean, você vai ter que recarregar a lista do datatable.

Diogo Soares

unread,
Dec 6, 2011, 10:02:08 AM12/6/11
to jav...@googlegroups.com
Hum interessante Arthur,

Olha só fui fazer como você falou

@ManagedBean
@ViewScoped
public class ProjetoController implements Serializable{


Porém aconteceu esse 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 12:51:18 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)


----- Mensagem original -----
De: "Arthur Franco Ferreira" <arcan...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Terça-feira, 6 de Dezembro de 2011 12:26:31


Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

Você disse que está trabalhando com escopo de Request, certo? Já pensou em considerar usar o View? Neste caso, ele mantém a lista carregada.

Se for realmente necessário que você utilize o Request, toda vez que você acessar um método no managedBean, você vai ter que recarregar a lista do datatable.

Arthur Franco Ferreira

unread,
Dec 6, 2011, 10:27:54 AM12/6/11
to jav...@googlegroups.com
Vc está usando o Spring para gerenciar seus beans?

Diogo Soares

unread,
Dec 6, 2011, 10:37:55 AM12/6/11
to jav...@googlegroups.com
Utilizo spring somente para conexão JDBC, pois trabalhamos somente com procedures oracle então ele é bem flexivel.
No inicio de cada ManagedBean instancio assim:

ApplicationContext context = new ClassPathXmlApplicationContext("conexao.xml");
ProjetoDAO projetoDAO = (ProjetoDAO) context.getBean("projetoDAO");

Até então usando RequestScope não tinha dado problema, mais como não tenho mais o carregamento dos datatables no init() ele não faz mais as paginações, só está faltando isso, ai fica bacana a tela.

----- Mensagem original -----
De: "Arthur Franco Ferreira" <arcan...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Terça-feira, 6 de Dezembro de 2011 13:27:54


Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

Vc está usando o Spring para gerenciar seus beans?


Arthur Franco Ferreira

unread,
Dec 6, 2011, 10:40:29 AM12/6/11
to jav...@googlegroups.com
No início de cada ManagedBean? Então você coloca essas duas linhas nos métodos @PostConstruct de todos os seus beans?

Diogo Soares

unread,
Dec 6, 2011, 10:52:49 AM12/6/11
to jav...@googlegroups.com
Não, eu deixo eles fora, fica na classe.

@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");

@PostConstruct
public void init(){

}

----- Mensagem original -----
De: "Arthur Franco Ferreira" <arcan...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Terça-feira, 6 de Dezembro de 2011 13:40:29


Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

No início de cada ManagedBean? Então você coloca essas duas linhas nos métodos @PostConstruct de todos os seus beans?


Arthur Franco Ferreira

unread,
Dec 6, 2011, 10:51:56 AM12/6/11
to jav...@googlegroups.com
Tente colocar dentro do init.

Diogo Soares

unread,
Dec 6, 2011, 11:03:37 AM12/6/11
to jav...@googlegroups.com
Mesmo assim não funcionou, parece que não pode ter o ClassPathXmlApplicationContext do spring com Serializable, será que não vou poder usar ViewScope? Se eu continuasse a usar RequestScope como eu poderia tratar a paginação?

----- Mensagem original -----
De: "Arthur Franco Ferreira" <arcan...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Terça-feira, 6 de Dezembro de 2011 13:51:56


Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

Tente colocar dentro do init.


Arthur Franco Ferreira

unread,
Dec 6, 2011, 11:07:44 AM12/6/11
to jav...@googlegroups.com
O problema em um ambiente request não é a paginação, é a lista.

Quando você trabalha com request, o objeto só existe durante a requisição. Ou seja, quando você clica no link no menu, ele faz uma requisição (HTTPRequest) para o bean. Nesse ponto, é criada uma instância do seu Bean. Depois que os métodos são executados e os objetos são passados para a página (HTTPResponse), a instância do bean é descartada.

Quando você clica na sua página, ele repete essa sequência que acabei de descrever, ou seja, o seu atributo que tem a lista do dataTable está nulo, portanto, você precisa carregá-lo novamente.

Coloque no seu método init() do Bean correspondente à essa página o preenchimento da lista. Assim, sempre que você fizer um request, será garantido que esse atributo estará carregado.

Teste assim e me diga se funcionou.

Diogo Soares

unread,
Dec 6, 2011, 11:18:56 AM12/6/11
to jav...@googlegroups.com
Sim isso eu sei, era assim que eu estava fazendo e tenho telas hoje que funcionam perfeitamente, o problema é que se eu colocar o carregar da lista no init() ao carregar o sistema mesmo colocando rederend=false todas as telas irão passar pelo init() e serão carregadas, isso irá perder a performace do sistema, por isso que abrir esse post para poder solucionar esse problema, pois como trabalho com ajax, todas as telas são carregadas no start porém ficam escondidas pelo rendered=false ai quando eu setar para true ele irá mostrar o formulário e carregar as páginas. Por isso estou apanhando tanto.

----- Mensagem original -----
De: "Arthur Franco Ferreira" <arcan...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Terça-feira, 6 de Dezembro de 2011 14:07:44


Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

O problema em um ambiente request não é a paginação, é a lista.

Quando você trabalha com request, o objeto só existe durante a requisição. Ou seja, quando você clica no link no menu, ele faz uma requisição (HTTPRequest) para o bean. Nesse ponto, é criada uma instância do seu Bean. Depois que os métodos são executados e os objetos são passados para a página (HTTPResponse), a instância do bean é descartada.

Quando você clica na sua página, ele repete essa sequência que acabei de descrever, ou seja, o seu atributo que tem a lista do dataTable está nulo, portanto, você precisa carregá-lo novamente.

Coloque no seu método init() do Bean correspondente à essa página o preenchimento da lista. Assim, sempre que você fizer um request, será garantido que esse atributo estará carregado.

Teste assim e me diga se funcionou.

Arthur Franco Ferreira

unread,
Dec 6, 2011, 11:35:31 AM12/6/11
to jav...@googlegroups.com
Hm. Há duas coisas que vc pode fazer:

1) No caso de usar ajax, o melhor seria trabalhar com o ViewScope. O que você pode fazer é utilizar o Spring para gerenciar os seus beans além de JDBC. Claro que vc teria que implementar o ViewScope, mas não é complexo (http://cagataycivici.wordpress.com/2010/02/17/port-jsf-2-0s-viewscope-to-spring-3-0/).

2) Para troca de página, você pode usar um submit normal e deixar o ajax apenas para comportamentos internos (exibir/ocultar campos, exclusão, etc.

O mais indicado é você ter um ManagedBean por página com os métodos que serão executados nela e, se necessário, um ManagedBean comum à todas as páginas com métodos que serão acessados por mais de uma. Sendo assim, você separa o comportamento das páginas em ManagedBeans diferentes e garante o bom desempenho do seu sistema.

Diogo Soares

unread,
Dec 6, 2011, 12:17:19 PM12/6/11
to jav...@googlegroups.com
Grande Arthur tamo chegando lá e mais uma vez obrigado pela ajuda...

Cara fiz o lance do spring o erro não apresenta mais, porém os métodos do MB não são mais executados, tipo o botão novo,salvar,excluir e ao clicar na linha do datatable e a paginação nenhum deles funciona ao ser exibido o formulário, como se estivesse faltando o @ViewScope

Ficou assim meu MB

@ManagedBean
@Scope("view")
public class ProjetoController{

Criei o ViewScope como está no exemplo e coloquei no applicationContext.xml mais acho que na verdade só não apresentou o erro pq eu tirei a anotação pq não deve estar funcionando esse lance do spring

----- Mensagem original -----
De: "Arthur Franco Ferreira" <arcan...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Terça-feira, 6 de Dezembro de 2011 14:35:31


Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

Hm. Há duas coisas que vc pode fazer:

1) No caso de usar ajax, o melhor seria trabalhar com o ViewScope. O que você pode fazer é utilizar o Spring para gerenciar os seus beans além de JDBC. Claro que vc teria que implementar o ViewScope, mas não é complexo ( http://cagataycivici.wordpress.com/2010/02/17/port-jsf-2-0s-viewscope-to-spring-3-0/ ).

2) Para troca de página, você pode usar um submit normal e deixar o ajax apenas para comportamentos internos (exibir/ocultar campos, exclusão, etc.

O mais indicado é você ter um ManagedBean por página com os métodos que serão executados nela e, se necessário, um ManagedBean comum à todas as páginas com métodos que serão acessados por mais de uma. Sendo assim, você separa o comportamento das páginas em ManagedBeans diferentes e garante o bom desempenho do seu sistema.

Arthur Franco Ferreira

unread,
Dec 6, 2011, 1:20:06 PM12/6/11
to jav...@googlegroups.com
Ah sim, vc tem que trocar o @ManagedBean por @Controller.

Ao usar o @ManagedBean vc está dizendo para o JSF gerenciar e criar uma instância daquele bean. O problema é que você tem que deixar o Spring fazer isso no lugar do JSF e para fazer isso você tem que usar o @Controller.

Outra configuração que você tem de fazer é no faces-config.xml:

<application>
    ...
    <el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
    ...
</application>


Com essa configuração, você permite que o Spring entenda a expression language do JSF.

Diogo Soares

unread,
Dec 6, 2011, 2:08:25 PM12/6/11
to jav...@googlegroups.com
Quase!!! hehee

Apareceu esses erros ao iniciar o tomcat

INFO: Unsanitized stacktrace from failed start...
com.sun.faces.config.ConfigurationException:
Source Document: jndi:/localhost/chamados/WEB-INF/faces-config.xml
Cause: Unable to find class 'org.springframework.web.jsf.el.SpringBeanFacesELResolver'
at com.sun.faces.config.processor.AbstractConfigProcessor.createInstance(AbstractConfigProcessor.java:275)
at com.sun.faces.config.processor.ApplicationConfigProcessor.addELResolver(ApplicationConfigProcessor.java:560)
at com.sun.faces.config.processor.ApplicationConfigProcessor.process(ApplicationConfigProcessor.java:298)
at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:114)
at com.sun.faces.config.processor.LifecycleConfigProcessor.process(LifecycleConfigProcessor.java:116)
at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:114)
at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:223)
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:335)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:223)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)


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)

Caused by: java.lang.ClassNotFoundException: org.springframework.web.jsf.el.SpringBeanFacesELResolver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
at com.sun.faces.util.Util.loadClass(Util.java:203)
at com.sun.faces.config.processor.AbstractConfigProcessor.loadClass(AbstractConfigProcessor.java:313)
at com.sun.faces.config.processor.AbstractConfigProcessor.createInstance(AbstractConfigProcessor.java:240)
... 16 more
06/12/2011 16:56:53 org.apache.catalina.core.StandardContext listenerStart
GRAVE: Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener
com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! org.springframework.web.jsf.el.SpringBeanFacesELResolver
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:354)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:223)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)


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)

Caused by: java.lang.ClassNotFoundException: org.springframework.web.jsf.el.SpringBeanFacesELResolver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
at com.sun.faces.util.Util.loadClass(Util.java:203)
at com.sun.faces.config.processor.AbstractConfigProcessor.loadClass(AbstractConfigProcessor.java:313)
at com.sun.faces.config.processor.AbstractConfigProcessor.createInstance(AbstractConfigProcessor.java:240)
at com.sun.faces.config.processor.ApplicationConfigProcessor.addELResolver(ApplicationConfigProcessor.java:560)
at com.sun.faces.config.processor.ApplicationConfigProcessor.process(ApplicationConfigProcessor.java:298)
at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:114)
at com.sun.faces.config.processor.LifecycleConfigProcessor.process(LifecycleConfigProcessor.java:116)
at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:114)
at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:223)
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:335)
... 9 more
06/12/2011 16:56:53 org.apache.catalina.core.StandardContext startInternal
GRAVE: Error listenerStart
06/12/2011 16:56:53 org.apache.catalina.core.StandardContext startInternal
GRAVE: Context [/chamados] startup failed due to previous errors
06/12/2011 16:56:53 com.sun.faces.config.ConfigureListener contextDestroyed
GRAVE: Unexpected exception when attempting to tear down the Mojarra runtime
java.lang.IllegalStateException: O aplicativo não foi iniciado corretamente na inicialização. Não foi possível encontrar Fábrica: javax.faces.application.ApplicationFactory
at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:804)
at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:306)
at com.sun.faces.config.InitFacesContext.getApplication(InitFacesContext.java:104)
at com.sun.faces.config.ConfigureListener.contextDestroyed(ConfigureListener.java:309)
at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4763)
at org.apache.catalina.core.StandardContext$4.run(StandardContext.java:5473)
at java.lang.Thread.run(Thread.java:662)


----- Mensagem original -----
De: "Arthur Franco Ferreira" <arcan...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Terça-feira, 6 de Dezembro de 2011 16:20:06


Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

Ah sim, vc tem que trocar o @ManagedBean por @Controller.

Ao usar o @ManagedBean vc está dizendo para o JSF gerenciar e criar uma instância daquele bean. O problema é que você tem que deixar o Spring fazer isso no lugar do JSF e para fazer isso você tem que usar o @Controller.

Outra configuração que você tem de fazer é no faces-config.xml:

<application>
...
<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
...
</application>

Com essa configuração, você permite que o Spring entenda a expression language do JSF.

Diogo Soares

unread,
Dec 6, 2011, 2:17:30 PM12/6/11
to jav...@googlegroups.com
Fiz como vc falou agora está retornando esse erro

INFO: Unsanitized stacktrace from failed start...
com.sun.faces.config.ConfigurationException:
Source Document: jndi:/localhost/chamados/WEB-INF/faces-config.xml
Cause: Unable to find class 'org.springframework.web.jsf.el.SpringBeanFacesELResolver'
at com.sun.faces.config.processor.AbstractConfigProcessor.createInstance(AbstractConfigProcessor.java:275)
at com.sun.faces.config.processor.ApplicationConfigProcessor.addELResolver(ApplicationConfigProcessor.java:560)
at com.sun.faces.config.processor.ApplicationConfigProcessor.process(ApplicationConfigProcessor.java:298)
at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:114)
at com.sun.faces.config.processor.LifecycleConfigProcessor.process(LifecycleConfigProcessor.java:116)
at com.sun.faces.config.processor.AbstractConfigProcessor.invokeNext(AbstractConfigProcessor.java:114)
at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:223)
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:335)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:223)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)

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)

Caused by: java.lang.ClassNotFoundException: org.springframework.web.jsf.el.SpringBeanFacesELResolver
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
at com.sun.faces.util.Util.loadClass(Util.java:203)
at com.sun.faces.config.processor.AbstractConfigProcessor.loadClass(AbstractConfigProcessor.java:313)
at com.sun.faces.config.processor.AbstractConfigProcessor.createInstance(AbstractConfigProcessor.java:240)
... 16 more
06/12/2011 16:56:53 org.apache.catalina.core.StandardContext listenerStart
GRAVE: Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener
com.sun.faces.config.ConfigurationException: CONFIGURATION FAILED! org.springframework.web.jsf.el.SpringBeanFacesELResolver
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:354)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:223)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)

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)

at java.lang.Thread.run(Thread.java:662)


----- Mensagem original -----
De: "Arthur Franco Ferreira" <arcan...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Terça-feira, 6 de Dezembro de 2011 16:20:06


Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

Ah sim, vc tem que trocar o @ManagedBean por @Controller.

Ao usar o @ManagedBean vc está dizendo para o JSF gerenciar e criar uma instância daquele bean. O problema é que você tem que deixar o Spring fazer isso no lugar do JSF e para fazer isso você tem que usar o @Controller.

Outra configuração que você tem de fazer é no faces-config.xml:

<application>
...
<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
...
</application>

Com essa configuração, você permite que o Spring entenda a expression language do JSF.

Bruno Maomeh

unread,
Dec 6, 2011, 2:14:46 PM12/6/11
to jav...@googlegroups.com
Unable to find class 'org.springframework.web.jsf.el.SpringBeanFacesELResolver'
 java.lang.ClassNotFoundException: org.springframework.web.jsf.el.SpringBeanFacesELResolver

está faltando algum módulo do spring no seu projeto.. e eu creio que seja o spring-web.jar

Diogo Soares

unread,
Dec 6, 2011, 2:20:04 PM12/6/11
to jav...@googlegroups.com
Coloquei o .jar do Spring-web e resolveu agora tem mais esse erro

GRAVE: Error Rendering View[/index.xhtml]
java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered?
at org.springframework.web.jsf.FacesContextUtils.getRequiredWebApplicationContext(FacesContextUtils.java:83)
at org.springframework.web.jsf.el.SpringBeanFacesELResolver.getWebApplicationContext(SpringBeanFacesELResolver.java:91)
at org.springframework.web.jsf.el.SpringBeanFacesELResolver.getBeanFactory(SpringBeanFacesELResolver.java:79)
at org.springframework.beans.factory.access.el.SpringBeanELResolver.getValue(SpringBeanELResolver.java:50)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:71)
at org.apache.el.parser.AstValue.getValue(AstValue.java:147)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:102)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:190)
at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:416)
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:48)
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:43)
at org.primefaces.component.panel.PanelRenderer.encodeContent(PanelRenderer.java:229)
at org.primefaces.component.panel.PanelRenderer.encodeMarkup(PanelRenderer.java:152)
at org.primefaces.component.panel.PanelRenderer.encodeEnd(PanelRenderer.java:75)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:878)
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:59)
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:43)
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:57)
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:43)
at org.primefaces.component.panel.PanelRenderer.encodeContent(PanelRenderer.java:229)
at org.primefaces.component.panel.PanelRenderer.encodeMarkup(PanelRenderer.java:152)
at org.primefaces.component.panel.PanelRenderer.encodeEnd(PanelRenderer.java:75)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:878)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1620)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:380)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:126)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:127)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)


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:300)


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)

06/12/2011 17:11:14 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [Faces Servlet] in context with path [/chamados] threw exception [No WebApplicationContext found: no ContextLoaderListener registered?] with root cause
java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered?
at org.springframework.web.jsf.FacesContextUtils.getRequiredWebApplicationContext(FacesContextUtils.java:83)
at org.springframework.web.jsf.el.SpringBeanFacesELResolver.getWebApplicationContext(SpringBeanFacesELResolver.java:91)
at org.springframework.web.jsf.el.SpringBeanFacesELResolver.getBeanFactory(SpringBeanFacesELResolver.java:79)
at org.springframework.beans.factory.access.el.SpringBeanELResolver.getValue(SpringBeanELResolver.java:50)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:67)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:71)
at org.apache.el.parser.AstValue.getValue(AstValue.java:147)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:102)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:190)
at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:416)
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:48)
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:43)
at org.primefaces.component.panel.PanelRenderer.encodeContent(PanelRenderer.java:229)
at org.primefaces.component.panel.PanelRenderer.encodeMarkup(PanelRenderer.java:152)
at org.primefaces.component.panel.PanelRenderer.encodeEnd(PanelRenderer.java:75)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:878)
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:59)
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:43)
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:57)
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:43)
at org.primefaces.component.panel.PanelRenderer.encodeContent(PanelRenderer.java:229)
at org.primefaces.component.panel.PanelRenderer.encodeMarkup(PanelRenderer.java:152)
at org.primefaces.component.panel.PanelRenderer.encodeEnd(PanelRenderer.java:75)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:878)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1620)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1616)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:380)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:126)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:127)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)


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:300)


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)


----- Mensagem original -----

Enviadas: Terça-feira, 6 de Dezembro de 2011 17:17:30

Bruno Maomeh

unread,
Dec 6, 2011, 2:17:06 PM12/6/11
to jav...@googlegroups.com
como está a configuração do spring no seu web.xml?

Diogo Soares

unread,
Dec 6, 2011, 2:28:11 PM12/6/11
to jav...@googlegroups.com
Meu web.xml está assim:

<?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>chamados</display-name>
<welcome-file-list>
<welcome-file>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>*.xhtml</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>
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>redmond</param-value>
</context-param>

</web-app>

----- Mensagem original -----
De: "Bruno Maomeh" <bruno...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Terça-feira, 6 de Dezembro de 2011 17:17:06

Bruno Maomeh

unread,
Dec 6, 2011, 2:30:31 PM12/6/11
to jav...@googlegroups.com
você precisa declarar as configurações do spring no web.xml..
adicione essas linhas no começo do arquivo..

<context-param>

    <param-name>contextConfigLocation</param-name>

    <param-value>

            WEB-INF\appContext.xml <!-- aqui vem o xml do spring -->

        </param-value>

</context-param>

<listener>

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

</listener>

depois fala o que acontece..

Diogo Soares

unread,
Dec 6, 2011, 2:40:42 PM12/6/11
to jav...@googlegroups.com
Vlw pela ajuda Bruno, vc e o Arthur estão me ajudando muito

Aconteceu esse erro agora...

java.lang.NoClassDefFoundError: org/springframework/core/env/ConfigurableEnvironment
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getConstructor0(Class.java:2699)
at java.lang.Class.getDeclaredConstructor(Class.java:1985)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:105)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:338)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:280)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)


at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
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)

Caused by: java.lang.ClassNotFoundException: org.springframework.core.env.ConfigurableEnvironment


at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)

... 16 more
06/12/2011 17:31:15 org.apache.catalina.core.StandardContext listenerStart
GRAVE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.NoClassDefFoundError: org/springframework/core/env/ConfigurableEnvironment
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getConstructor0(Class.java:2699)
at java.lang.Class.getDeclaredConstructor(Class.java:1985)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:105)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:338)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:280)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)


at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
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)

Caused by: java.lang.ClassNotFoundException: org.springframework.core.env.ConfigurableEnvironment


at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)

... 16 more

----- Mensagem original -----
De: "Bruno Maomeh" <bruno...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Terça-feira, 6 de Dezembro de 2011 17:30:31

Bruno Maomeh

unread,
Dec 6, 2011, 2:47:31 PM12/6/11
to jav...@googlegroups.com
java.lang.NoClassDefFoundError: org/springframework/core/env/ConfigurableEnvironment

novamente, está faltando alguma lib.. possivelmente spring-core.jar

outra coisa, tá usando qual versão do spring?

Diogo Soares

unread,
Dec 7, 2011, 4:44:28 AM12/7/11
to jav...@googlegroups.com
Pois é mais eu tenho o org.springframework.core-3.0.0.M3.jar

A versão que eu uso é a 3.0.0.M3


----- Mensagem original -----
De: "Bruno Maomeh" <bruno...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Terça-feira, 6 de Dezembro de 2011 17:47:31


Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

java.lang. NoClassDefFoundError: org/springframework/core/env/ ConfigurableEnvironment

Diogo Soares

unread,
Dec 7, 2011, 4:55:06 AM12/7/11
to jav...@googlegroups.com
Atualizei minhas libs do spring para o 3.1 e não deu mais aquele erro, porém mais uma vez está acontecendo esse outro aqui

GRAVE: javax.el.PropertyNotFoundException: /index.xhtml @71,171 action="#{projetoController.carregaLista}": Target Unreachable, identifier 'projetoController' resolved to null
javax.faces.el.EvaluationException: javax.el.PropertyNotFoundException: /index.xhtml @71,171 action="#{projetoController.carregaLista}": Target Unreachable, identifier 'projetoController' resolved to null
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:95)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
at javax.faces.component.UICommand.broadcast(UICommand.java:315)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:775)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1267)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)


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)

Caused by: javax.el.PropertyNotFoundException: /index.xhtml @71,171 action="#{projetoController.carregaLista}": Target Unreachable, identifier 'projetoController' resolved to null
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:100)
at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
... 24 more
07/12/2011 07:44:27 com.sun.faces.lifecycle.InvokeApplicationPhase execute

Parece que ele não acha o método dentro do MB

os annotations estão assim:

@Controller


@Scope("view")
public class ProjetoController{

----- Mensagem original -----

Enviadas: Quarta-feira, 7 de Dezembro de 2011 7:44:28

Diogo Soares

unread,
Dec 7, 2011, 5:13:16 AM12/7/11
to jav...@googlegroups.com
Bom galera consegui resolver aqui, fiz o mapeamento do MB no applicatonContext.xml agora não deu mais erro, porém voltei ao mesmo problema que tinha dado antes, clico no botão novo,salvar,excluir, consultar e paginação e nada funciona mais tbm não dá erro, o que pode ser?


----- Mensagem original -----
De: "Diogo Soares" <diogo....@isdra.com.br>
Para: jav...@googlegroups.com

Enviadas: Quarta-feira, 7 de Dezembro de 2011 7:55:06

Diogo Soares

unread,
Dec 7, 2011, 5:25:19 AM12/7/11
to jav...@googlegroups.com
Galera só para avisar ta tudo funcionando, o problema estava que eu não tinha passado o menu para o controle do spring tbm agora está tudo funcionando, muito obrigado pela ajuda, vlw mesmo


----- Mensagem original -----
De: "Diogo Soares" <diogo....@isdra.com.br>
Para: jav...@googlegroups.com

Enviadas: Quarta-feira, 7 de Dezembro de 2011 8:13:16

Arthur Franco Ferreira

unread,
Dec 7, 2011, 5:41:12 AM12/7/11
to jav...@googlegroups.com
Só um detalhe: você configurar o Bean no applicationContext.xml é a mesma coisa que usar as anotações @Controller, @Component, @Service e @Repository. A diferença é que cada uma delas pertence às camadas da sua aplicação.

Que bom que tudo se resolveu no final :)

Arthur Franco Ferreira
Analista Desenvolvedor Web Java Pleno
Licenciado em Computação
UNILASALLE-RJ




2011/12/7 Diogo Soares <diogo....@isdra.com.br>

Diogo Soares

unread,
Dec 7, 2011, 6:00:59 AM12/7/11
to jav...@googlegroups.com
Pois é Arthur, somente com o @Controller não funciona porque será? A idéia não é usar xml e sim tudo annotations


----- Mensagem original -----
De: "Arthur Franco Ferreira" <arcan...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Quarta-feira, 7 de Dezembro de 2011 8:41:12


Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

Só um detalhe: você configurar o Bean no applicationContext.xml é a mesma coisa que usar as anotações @Controller, @Component, @Service e @Repository. A diferença é que cada uma delas pertence às camadas da sua aplicação.

Que bom que tudo se resolveu no final :)

Arthur Franco Ferreira

unread,
Dec 7, 2011, 6:09:26 AM12/7/11
to jav...@googlegroups.com
Com certeza faltou configurar alguma coisa. Como que está o seu applicationContext.xml que funciona?

Diogo Soares

unread,
Dec 7, 2011, 6:22:01 AM12/7/11
to jav...@googlegroups.com

Esse é o que está funcionando mapeando os beans dentro

<?xml version="1.0" encoding="UTF-8"?>

<b:beans xmlns:b="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

<b:bean class="org.springframework.beans.factory.config.CustomScopeConfigurer">
<b:property name="scopes">
<b:map>
<b:entry key="view">
<b:bean class="com.br.isdra.sgc.spring.ViewScope" />
</b:entry>
</b:map>
</b:property>
</b:bean>
<b:bean id="projetoController" class="com.br.isdra.sgc.controller.ProjetoController"></b:bean>
<b:bean id="classeController" class="com.br.isdra.sgc.controller.ClasseController"></b:bean>
<b:bean id="menuController" class="com.br.isdra.sgc.controller.MenuController"></b:bean>
</b:beans>


----- Mensagem original -----
De: "Arthur Franco Ferreira" <arcan...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Quarta-feira, 7 de Dezembro de 2011 9:09:26


Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

Com certeza faltou configurar alguma coisa. Como que está o seu applicationContext.xml que funciona?


Arthur Franco Ferreira

unread,
Dec 7, 2011, 6:26:46 AM12/7/11
to jav...@googlegroups.com
Hm. Vc não definiu eles no escopo View. Eles estão como Singleton que é o escopo padrão do Spring.

Leia o item 3.4 dessa lista para entender melhor o Singleton e outros escopos do Spring:

http://static.springsource.org/spring/docs/2.0.x/reference/beans.html

Para definir os beans como View, você deveria ter feito isso:

<b:bean id="projetoController" class="com.br.isdra.sgc.controller.ProjetoController" scope="view"></b:bean>
<b:bean id="classeController" class="com.br.isdra.sgc.controller.ClasseController" scope="view"></b:bean>
<b:bean id="menuController" class="com.br.isdra.sgc.controller.MenuController" scope="view"></b:bean>

Diogo Soares

unread,
Dec 7, 2011, 6:40:57 AM12/7/11
to jav...@googlegroups.com
Então sempre que eu criar um MB novo, devo mapear ele no applicationContext?

----- Mensagem original -----
De: "Arthur Franco Ferreira" <arcan...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Quarta-feira, 7 de Dezembro de 2011 9:26:46


Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

Hm. Vc não definiu eles no escopo View . Eles estão como Singleton que é o escopo padrão do Spring.

Leia o item 3.4 dessa lista para entender melhor o Singleton e outros escopos do Spring:

http://static.springsource.org/spring/docs/2.0.x/reference/beans.html

Para definir os beans como View, você deveria ter feito isso:

<b:bean id="projetoController" class="com.br.isdra.sgc.controller.ProjetoController" scope="view" ></b:bean>

<b:bean id="classeController" class="com.br.isdra.sgc.controller.ClasseController" scope="view" ></b:bean>
<b:bean id="menuController" class="com.br.isdra.sgc.controller.MenuController" scope="view" ></b:bean>

Arthur Franco Ferreira

Arthur Franco Ferreira

unread,
Dec 7, 2011, 6:42:07 AM12/7/11
to jav...@googlegroups.com
Ou anotar ele com @Controller. Acredito que não funcionou porque você usou @Controller e colocou também @Scope("view"), não foi?

Parece que como Singleton funcionou, mas isso pode ter problema de concorrência. Na verdade, no seu cenário, o único bean que poderia ser de escopo Singleton é o do menu. Os beans de cada página devem ser de escopo View. Se as páginas forem singleton, quando dois usuários acessarem o mesmo bean, os dados ficarão em concorrência e vão ocorrer erros em temo de execução.

Diogo Soares

unread,
Dec 7, 2011, 6:55:41 AM12/7/11
to jav...@googlegroups.com
Verdade eu usei o @Controller e o @Scope("view")

1- Mais no caso eu poderia usar somente o @Controller? e como ele vai saber que é do tipo Scope=view?


----- Mensagem original -----
De: "Arthur Franco Ferreira" <arcan...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Quarta-feira, 7 de Dezembro de 2011 9:42:07


Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

Ou anotar ele com @Controller. Acredito que não funcionou porque você usou @Controller e colocou também @Scope("view"), não foi?

Parece que como Singleton funcionou, mas isso pode ter problema de concorrência. Na verdade, no seu cenário, o único bean que poderia ser de escopo Singleton é o do menu. Os beans de cada página devem ser de escopo View. Se as páginas forem singleton, quando dois usuários acessarem o mesmo bean, os dados ficarão em concorrência e vão ocorrer erros em temo de execução.

Diogo Soares

unread,
Dec 7, 2011, 6:58:13 AM12/7/11
to jav...@googlegroups.com
Outra coisa que percebi é que se não tiver o @Controller ele não entra nos métodos do MB....
Então tem que ter o @Controller e mesmo assim mapear ele no applicationContext


----- Mensagem original -----
De: "Arthur Franco Ferreira" <arcan...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Quarta-feira, 7 de Dezembro de 2011 9:42:07


Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

Ou anotar ele com @Controller. Acredito que não funcionou porque você usou @Controller e colocou também @Scope("view"), não foi?

Parece que como Singleton funcionou, mas isso pode ter problema de concorrência. Na verdade, no seu cenário, o único bean que poderia ser de escopo Singleton é o do menu. Os beans de cada página devem ser de escopo View. Se as páginas forem singleton, quando dois usuários acessarem o mesmo bean, os dados ficarão em concorrência e vão ocorrer erros em temo de execução.

Diogo Soares

unread,
Dec 7, 2011, 7:13:47 AM12/7/11
to jav...@googlegroups.com
Arthur voltei a um ponto de origem que enfrentei no inicio...

Fiz os testes que você pediu e realmente ele estava se comportando como Singleton, abri uma form na minha tela e em outro computador abriu a mesma tela, ou seja, está apresentando o mesmo problema, então coloquei o scope="view" lá no applicationContext e apresentou os mesmo problemas que apareceu quando usei o @ManagedBean e o @ScopeView - veja:


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.GeneratedMethodAccessor25.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.GeneratedMethodAccessor25.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

07/12/2011 10:03:00 org.apache.catalina.core.StandardWrapperValve invoke


----- Mensagem original -----

Enviadas: Quarta-feira, 7 de Dezembro de 2011 9:58:13

Arthur Franco Ferreira

unread,
Dec 7, 2011, 7:12:23 AM12/7/11
to jav...@googlegroups.com
Não não. Ou um, ou outro. Ou você configura no applicationContext ou você usa o @Controller. Os dois fazem exatamente a mesma coisa.

Para você dizer se um bean é do escopo de view. Para isso vc deve declarar @Scope("view") ou definir como eu mostrei acima usando o seu código.

Arthur Franco Ferreira

unread,
Dec 7, 2011, 7:14:52 AM12/7/11
to jav...@googlegroups.com
Vc chegou a separar os beans? Um bean para o Menu e um bean para cada página?


Arthur Franco Ferreira
Analista Desenvolvedor Web Java Pleno
Licenciado em Computação
UNILASALLE-RJ




2011/12/7 Arthur Franco Ferreira <arcan...@gmail.com>

Diogo Soares

unread,
Dec 7, 2011, 7:59:28 AM12/7/11
to jav...@googlegroups.com
Sim eu fiz um bean para cada um inclusive para o menu.

Porém com o scope="view" lá no applicationContext não funfa mais nada.

Vou postar meu código para vc ver, se preferir posso te mandar por e-mail!!!

***MenuController
@Controller
public class MenuController {

***ProjetoController
@Controller


public class ProjetoController implements Serializable{

private static final long serialVersionUID = 1L;

ApplicationContext context = new ClassPathXmlApplicationContext("conexao.xml");
ProjetoDAO projetoDAO = (ProjetoDAO) context.getBean("projetoDAO");


***applicationContext.xml

<b:bean
class="org.springframework.beans.factory.config.CustomScopeConfigurer">
<b:property name="scopes">
<b:map>
<b:entry key="view">
<b:bean class="com.br.isdra.sgc.spring.ViewScope" />
</b:entry>
</b:map>
</b:property>
</b:bean>

<b:bean id="menuController" class="com.br.isdra.sgc.controller.MenuController" scope="request"></b:bean>


<b:bean id="classeController" class="com.br.isdra.sgc.controller.ClasseController" scope="view"></b:bean>
<b:bean id="projetoController" class="com.br.isdra.sgc.controller.ProjetoController" scope="view"></b:bean>

</b:beans>

***faces-config.xml


<?xml version="1.0" encoding="UTF-8"?>

<faces-config 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-facesconfig_2_0.xsd"
version="2.0">

<application>
<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
</application>

</faces-config>


***web.xml

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>

/WEB-INF/applicationContext.xml


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

</web-app>

*** 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.GeneratedMethodAccessor25.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.GeneratedMethodAccessor25.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

07/12/2011 10:51:32 org.apache.catalina.core.StandardWrapperValve invoke

Enviadas: Quarta-feira, 7 de Dezembro de 2011 10:14:52


Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

Vc chegou a separar os beans? Um bean para o Menu e um bean para cada página?


Arthur Franco Ferreira
Analista Desenvolvedor Web Java Pleno
Licenciado em Computação
UNILASALLE-RJ

2011/12/7 Arthur Franco Ferreira < arcan...@gmail.com >


Não não. Ou um, ou outro. Ou você configura no applicationContext ou você usa o @Controller. Os dois fazem exatamente a mesma coisa.

Para você dizer se um bean é do escopo de view. Para isso vc deve declarar @Scope("view") ou definir como eu mostrei acima usando o seu código.

Arthur Franco Ferreira

unread,
Dec 7, 2011, 8:21:05 AM12/7/11
to jav...@googlegroups.com
Vamos tratar de uma parte do seu código. Isso daqui:


ApplicationContext context = new ClassPathXmlApplicationContext("conexao.xml");
ProjetoDAO projetoDAO = (ProjetoDAO) context.getBean("projetoDAO");

Você pode deixar o Spring gerenciar. Substitua essa linha daí de cima por:

@Autowired
private ProjetoDAO projetoDAO;


Você precisa configurar o xml no seu web.xml também:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        /WEB-INF/applicationContext.xml
        /WEB-INF/conexao.xml
    </param-value>
</context-param>

Dessa forma o container instancia as configurações (xml) do Spring e com o @Autowired você diz para o Spring recuperar a instância que você precisa do DAO (nesse caso, o DAO pode ser um Singleton que não vai te impedir).

Agora vamos lá, se o MenuController irá conter informações que devem ser diferentes entre usuários e é um componente em comum a mais de uma página do sistema, ele não pode ser nem request e nem singleton. O melhor escopo para o seu MenuController é session ou prototype. No seu caso, eu recomendo session, então, a configuração da sua aplicação ficaria:

<b:bean id="menuController" class="com.br.isdra.sgc.controller.MenuController" scope="session"></b:bean>
<b:bean id="classeController" class="com.br.isdra.sgc.controller.ClasseController" scope="view"></b:bean>
<b:bean id="projetoController" class="com.br.isdra.sgc.
controller.ProjetoController" scope="view"></b:bean>

Acredito que dessa forma irá funcionar como você quer. Teste e me avise.

Diogo Soares

unread,
Dec 7, 2011, 8:41:21 AM12/7/11
to jav...@googlegroups.com
Pergunta:

Qual o annotations que vou usar no bean? ou setando lá no applicationContext não preciso colocar nenhum annotations?

----- Mensagem original -----
De: "Arthur Franco Ferreira" <arcan...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Quarta-feira, 7 de Dezembro de 2011 11:21:05


Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

Vamos tratar de uma parte do seu código. Isso daqui:

ApplicationContext context = new ClassPathXmlApplicationContext("conexao.xml");

ProjetoDAO projetoDAO = (ProjetoDAO) context.getBean("projetoDAO");

Você pode deixar o Spring gerenciar. Substitua essa linha daí de cima por:

@Autowired
private ProjetoDAO projetoDAO;

Você precisa configurar o xml no seu web.xml também:

<context-param>
<param-name>contextConfigLocation</param-name>

<param-value>
/WEB-INF/applicationContext.xml
/WEB-INF/conexao.xml
</param-value> </context-param>

Dessa forma o container instancia as configurações (xml) do Spring e com o @Autowired você diz para o Spring recuperar a instância que você precisa do DAO (nesse caso, o DAO pode ser um Singleton que não vai te impedir).

Agora vamos lá, se o MenuController irá conter informações que devem ser diferentes entre usuários e é um componente em comum a mais de uma página do sistema, ele não pode ser nem request e nem singleton. O melhor escopo para o seu MenuController é session ou prototype. No seu caso, eu recomendo session, então, a configuração da sua aplicação ficaria:

<b:bean id="menuController" class="com.br.isdra.sgc.controller.MenuController" scope="session" ></b:bean>


<b:bean id="classeController" class="com.br.isdra.sgc. controller.ClasseController" scope="view"></b:bean>
<b:bean id="projetoController" class="com.br.isdra.sgc. controller.ProjetoController" scope="view"></b:bean>

Acredito que dessa forma irá funcionar como você quer. Teste e me avise.

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

***ProjetoController
@Controller


***applicationContext.xml

***faces-config.xml

</faces-config>


***web.xml

*** ERRO

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

http://static.springsource.org/spring/docs/2.0.x/reference/beans.html

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

os annotations estão assim:

java.lang. NoClassDefFoundError: org/springframework/core/env/ ConfigurableEnvironment

Aconteceu esse erro agora...


<context-param>

<param-name> contextConfigLocation </param-name>

<param-value>

</param-value>

</context-param>

<listener>

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

</listener>


Meu web.xml está assim:

</web-app>


----- Mensagem original -----

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

Ficou assim meu MB

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

@PostConstruct
public void init(){


}

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

2011/12/6 Diogo Soares < diogo....@isdra.com.br >


Hum interessante Arthur,


Porém aconteceu esse erro:

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

Entendeu?

2011/12/6 Diogo Soares < diogo....@isdra.com.br >


Bom dia Arthur,

2011/12/5 Diogo Soares < diogo....@isdra.com.br >


Sim, mais não mostra

----- Mensagem original -----

2011/12/5 Diogo Soares < diogo....@isdra.com.br >


Tamo quase lá, hehehe

2011/12/5 Diogo Soares < diogo....@isdra.com.br >

2011/12/5 Diogo Soares < diogo....@isdra.com.br >


---------------------------------------------------

----- Mensagem original -----

2011/12/5 Diogo Soares < diogo....@isdra.com.br >

ManagedBean com RequestScope

private boolean carregar;


---------------------------------------------------

2011/12/5 Diogo Soares < diogo....@isdra.com.br >


Bom dia Galera, blz?

---------------------------------------------------

Conhe&cc

[Mensagem truncada]

Bruno Maomeh

unread,
Dec 7, 2011, 8:40:18 AM12/7/11
to jav...@googlegroups.com
para o seu spring reconhecer as anotações, você precisa definir um scanner pra ele..

algo assim..
<context:annotation-config /> <!-- reconhece outras anotações do spring e da JSR 250 -->
<context:component-scan base-package="br.com.teupackage" /> <!-- pacote onde o spring irá procurar pelas classes anotadas -->

e lembrar de adicionar no header:
xmlns:context="http://www.springframework.org/schema/context"

Bruno Maomeh

unread,
Dec 7, 2011, 8:40:40 AM12/7/11
to jav...@googlegroups.com
com isso, você não precisará mais declarar no xml

Diogo Soares

unread,
Dec 7, 2011, 10:21:30 AM12/7/11
to jav...@googlegroups.com
Bom vamos lá, fiz o que o Bruno falou e está se comportando da mesma maneira com ou sem annotations

Notei que começou a pedir para colocar Serializable em várias arquivos: Controller, Bean, DAO, etc e agora está pedindo para as libs

veja o erro:

Caused by: java.io.NotSerializableException: org.apache.commons.dbcp.BasicDataSource


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.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.GeneratedMethodAccessor27.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.GeneratedMethodAccessor27.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

07/12/2011 13:11:04 org.apache.catalina.core.StandardWrapperValve invoke


----- Mensagem original -----

Enviadas: Quarta-feira, 7 de Dezembro de 2011 11:40:40


Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

com isso, você não precisará mais declarar no xml

@Autowired
private ProjetoDAO projetoDAO;

<context-param>
<param-name>contextConfigLocation</param-name>

<b:bean id="classeController" class="com.br.isdra.sgc. controller.ClasseController" scope="view"></b:bean>
<b:bean id="projetoController" class="com.br.isdra.sgc. controller.ProjetoController" scope="view"></b:bean>

Acredito que dessa forma irá funcionar como você quer. Teste e me avise.

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

***ProjetoController
@Controller


***applicationContext.xml

***faces-config.xml

</faces-config>


***web.xml

*** ERRO

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

http://static.springsource.org/spring/docs/2.0.x/reference/beans.html

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

os annotations estão assim:

java.lang. NoClassDefFoundError: org/springframework/core/env/ ConfigurableEnvironment

Aconteceu esse erro agora...


<context-param>

<param-name> contextConfigLocation </param-name>

<param-value>

</param-value>

</context-param>

<listener>

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

</listener>


Meu web.xml está assim:

</web-app>


----- Mensagem original -----

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

Ficou assim meu MB

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

@PostConstruct
public void init(){


}

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

2011/12/6 Diogo Soares < diogo....@isdra.com.br >


Hum interessante Arthur,


Porém aconteceu esse erro:

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

Entendeu?

2011/12/6 Diogo Soares < diogo....@isdra.com.br >


Bom dia Arthur,

2011/12/5 Diogo Soares < diogo....@isdra.com.br >


Sim, mais não mostra

----- Mensagem original -----

2011/12/5 Diogo Soares < diogo....@isdra.com.br >


Tamo quase lá, hehehe

2011/12/5 Diogo Soares < diogo....@isdra.com.br >

2011/12/5 Diogo Soares < diogo....@isdra.com.br >


---------------------------------------------------

----- Mensagem original -----

2011/12/5 Diogo Soares < diogo....@isdra.com.br >

ManagedBean com RequestScope

private boolean carregar;


---------------------------------------------------

2011/12/5 Diogo Soares < diogo....@isdra.com.br >


Bom dia Galera, blz?

---------------------------------------------------

Conheça também o Jav

[Mensagem truncada]

Arthur Franco Ferreira

unread,
Dec 7, 2011, 10:22:06 AM12/7/11
to jav...@googlegroups.com
Tu consegue me mandar o projeto?

Diogo Soares

unread,
Dec 7, 2011, 10:41:08 AM12/7/11
to jav...@googlegroups.com
Te mandei para o email

Os testes que estou fazendo estão dentro da pasta controller ProjetoController e MenuController


----- Mensagem original -----
De: "Arthur Franco Ferreira" <arcan...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Quarta-feira, 7 de Dezembro de 2011 13:22:06


Assunto: Re: [javasf] Gerenciar menu em ajax primefaces

Tu consegue me mandar o projeto?


2011/12/7 Diogo Soares < diogo....@isdra.com.br >

veja o erro:

Caused by: java.io.NotSerializableException: org.apache.commons.dbcp.BasicDataSource


----- Mensagem original -----

@Autowired
private ProjetoDAO projetoDAO;

<context-param>
<param-name>contextConfigLocation</param-name>

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

***ProjetoController
@Controller


***applicationContext.xml

***faces-config.xml

</faces-config>


***web.xml

*** ERRO

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

http://static.springsource.org/spring/docs/2.0.x/reference/beans.html

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

os annotations estão assim:

java.lang. NoClassDefFoundError: org/springframework/core/env/ ConfigurableEnvironment

Aconteceu esse erro agora...


<context-param>

<param-name> contextConfigLocation </param-name>

<param-value>

</param-value>

</context-param>

<listener>

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

</listener>


Meu web.xml está assim:

</web-app>


----- Mensagem original -----

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

Ficou assim meu MB

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

@PostConstruct
public void init(){


}

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

2011/12/6 Diogo Soares < diogo....@isdra.com.br >


Hum interessante Arthur,


Porém aconteceu esse erro:

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

Entendeu?

2011/12/6 Diogo Soares < diogo....@isdra.com.br >


Bom dia Arthur,

2011/12/5 Diogo Soares < diogo....@isdra.com.br >


Sim, mais não mostra

----- Mensagem original -----

2011/12/5 Diogo Soares < diogo....@isdra.com.br >


Tamo quase lá, hehehe

2011/12/5 Diogo Soares < diogo....@isdra.com.br >

2011/12/5 Diogo Soares < diogo....@isdra.com.br >


---------------------------------------------------

----- Mensagem original -----

2011/12/5 Diogo Soares < diogo....@isdra.com.br >

ManagedBean com RequestScope

private boolean carregar;


---------------------------------------------------

2011/12/5 Diogo Soares < diogo....@isdra.com.br >


Bom dia Galera, blz?

---------------------------------------------------


[Mensagem truncada]

Diogo Soares

unread,
Dec 7, 2011, 1:08:43 PM12/7/11
to jav...@googlegroups.com
Outra pergunta que eu te faço, é possível tirar o

<bean id="chamadoDAO" class="com.br.isdra.sgc.dao.impl.ChamadoDAOImpl">
<property name="dataSource" ref="dataSource"/>
</bean>

Que está mapeado no xml e fazer ele via annotations?

----- Mensagem original -----
De: "Diogo Soares" <diogo....@isdra.com.br>
Para: jav...@googlegroups.com

Enviadas: Quarta-feira, 7 de Dezembro de 2011 13:41:08

Bruno Maomeh

unread,
Dec 7, 2011, 1:10:56 PM12/7/11
to jav...@googlegroups.com
teoricamente, sim.. isso vai depender um pouco das tuas configurações..

Diogo Soares

unread,
Dec 7, 2011, 1:22:28 PM12/7/11
to jav...@googlegroups.com
Bom esse tópico ficou gigante, então vou postar a correção que o Arthur me passou e tentar corrigir o último erro que está aparecendo, então a solução ficou assim:

OBs. Se puderem me dar uma dica de como mapear via annotations as configurações que estão no conexao.xml, agradeço

ERRO:
Warning: This page calls for XML namespace declared with prefix link but no taglibrary exists for that namespace.

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>chamados</display-name>

<!-- ********************************************* -->
<!-- Spring -->
<!-- ********************************************* -->



<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/applicationContext.xml
/WEB-INF/conexao.xml
</param-value>
</context-param>

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

<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>

<!-- ********************************************* -->
<!-- JSF -->
<!-- ********************************************* -->



<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>
<context-param>

<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</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>
<context-param>
<param-name>primefaces.THEME</param-name>
<param-value>redmond</param-value>
</context-param>

<!-- ********************************************* -->
<!-- Aplicacao -->
<!-- ********************************************* -->

<session-config>
<session-timeout>30</session-timeout>
</session-config>


<welcome-file-list>
<welcome-file>index.xhtml</welcome-file>
</welcome-file-list>

</web-app>

Conexao.xml


<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"

http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@100.100.100.38:1521:dsvfbr"/>
<property name="username" value="teste"/>
<property name="password" value="teste"/>
</bean>



<bean id="chamadoDAO" class="com.br.isdra.sgc.dao.impl.ChamadoDAOImpl">
<property name="dataSource" ref="dataSource"/>
</bean>

</beans>

applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"

http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

<context:component-scan base-package="com.br.isdra.sgc.controller" annotation-config="true" />
<context:annotation-config />

<!-- ********************************************* -->
<!-- View Scope -->
<!-- ********************************************* -->

<bean class="org.springframework.beans.factory.config.CustomScopeConfigurer">
<property name="scopes">
<map>
<entry key="view">
<bean class="com.br.isdra.sgc.spring.ViewScope"/>
</entry>
</map>
</property>
</bean>

</beans>

----- Mensagem original -----
De: "Bruno Maomeh" <bruno...@gmail.com>
Para: jav...@googlegroups.com

Enviadas: Quarta-feira, 7 de Dezembro de 2011 16:10:56

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

veja o erro:

Caused by: java.io.NotSerializableException: org.apache.commons.dbcp.BasicDataSource


----- Mensagem original -----

@Autowired
private ProjetoDAO projetoDAO;

<context-param>
<param-name>contextConfigLocation</param-name>

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

***ProjetoController
@Controller


***applicationContext.xml

***faces-config.xml

</faces-config>


***web.xml

*** ERRO

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

http://static.springsource.org/spring/docs/2.0.x/reference/beans.html

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

os annotations estão assim:

java.lang. NoClassDefFoundError: org/springframework/core/env/ ConfigurableEnvironment

Aconteceu esse erro agora...


<context-param>

<param-name> contextConfigLocation </param-name>

<param-value>

</param-value>

</context-param>

<listener>

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

</listener>


Meu web.xml está assim:

</web-app>


----- Mensagem original -----

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

Ficou assim meu MB

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

@PostConstruct
public void init(){


}

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

2011/12/6 Diogo Soares < diogo....@isdra.com.br >


Hum interessante Arthur,


Porém aconteceu esse erro:

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

Entendeu?

2011/12/6 Diogo Soares < diogo....@isdra.com.br >


Bom dia Arthur,

2011/12/5 Diogo Soares < diogo....@isdra.com.br >


Sim, mais não mostra

----- Mensagem original -----

2011/12/5 Diogo Soares < diogo....@isdra.com.br >


Tamo quase lá, hehehe

2011/12/5 Diogo Soares < diogo....@isdra.com.br >

2011/12/5 Diogo Soares < diogo....@isdra.com.br >


---------------------------------------------------

----- Mensagem original -----

2011/12/5 Diogo Soares < diogo....@isdra.com.br >

ManagedBean com RequestScope

private boolean carregar;


---------------------------------------------------

2011/12/5 Diogo Soares < diogo....@isdra.com.br >


Bom dia Galera, blz?

---------------------------------------------------


[Mensagem truncada]


--
Bruno Maomeh
&nbs

[Mensagem truncada]

Bruno Maomeh

unread,
Dec 7, 2011, 1:26:34 PM12/7/11
to jav...@googlegroups.com
do jeito que está, deveria funcionar sem declarar o chamadoDAO no xml.. apenas anotando essa classe..
mas configurar o dataSource, eu prefiro em xml mesmo.. 
porém, creio que seja possível criar sem ser no xml.. mas nunca procurei sobre..

Diogo Soares

unread,
Dec 7, 2011, 2:08:23 PM12/7/11
to jav...@googlegroups.com

Bom galera graças a Deus e a vcs finalmente funcionou tudo direitinho, o último erro era somente acrescentar o códiog na página

xmlns="http://www.w3.org/1999/xhtml"

Agora vou dar mais uma estudada no spring dentro disso que aprendi com vcs, vlw mesmo


----- Mensagem original -----

Enviadas: Quarta-feira, 7 de Dezembro de 2011 16:26:34

<display-name>chamados</display-name>

</context-param>

</web-app>

Conexao.xml

</beans>

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

veja o erro:

Caused by: java.io.NotSerializableException: org.apache.commons.dbcp.BasicDataSource


----- Mensagem original -----

@Autowired
private ProjetoDAO projetoDAO;

<context-param>
<param-name>contextConfigLocation</param-name>

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

***ProjetoController
@Controller


***applicationContext.xml

***faces-config.xml

</faces-config>


***web.xml

*** ERRO

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

http://static.springsource.org/spring/docs/2.0.x/reference/beans.html

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

2011/12/7 Diogo Soares < diogo....@isdra.com.br >

os annotations estão assim:

java.lang. NoClassDefFoundError: org/springframework/core/env/ ConfigurableEnvironment

Aconteceu esse erro agora...


<context-param>

<param-name> contextConfigLocation </param-name>

<param-value>

</param-value>

</context-param>

<listener>

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

</listener>


Meu web.xml está assim:

</web-app>


----- Mensagem original -----

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

Ficou assim meu MB

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

@PostConstruct
public void init(){


}

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

2011/12/6 Diogo Soares < diogo....@isdra.com.br >


Hum interessante Arthur,


Porém aconteceu esse erro:

2011/12/6 Diogo Soares < diogo....@isdra.com.br >

Entendeu?

2011/12/6 Diogo Soares < diogo....@isdra.com.br >


Bom dia Arthur,

2011/12/5 Diogo Soares < diogo....@isdra.com.br >


Sim, mais não mostra

----- Mensagem original -----

Licenciado em Computaç&atild

[Mensagem truncada]

Reply all
Reply to author
Forward
0 new messages