You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to javasf: JavaServer Faces Group
Olá a todos!
Estou com um problema em trabalhar com um Managed Bean configurado em
@ConversationScoped. Eu inicio uma conversação num metodo set de um
atributo do meu bean (atributo tarefa), mas no segundo request que eu
faço (chamada do metodo salvar), o objeto tarefa é um novo objeto e o
status da conversação está transiente, mesmo sem eu tê-la finalizado.
O primeiro request é chamado de um link em uma coluna de um dataTable
de tarefas, correspondente ao nome do colaborador responsavel por
aquela tarefa.
O segundo request é feito através de um a4j:commandButton dentro de um
popup do richfaces.
Alguém saberia me dizer o que pode estar acontecendo com o escopo?
Obrigado!
------------ MANAGED BEAN -----------------
@Named
@ConversationScoped
public class TarefaController implements Serializable {
Rafael Mauricio Pestano Graduando em Ciência da Computação UFRGS
De: Fillipe Aguiar Soares <fillipe...@summa.com.br> Para: javasf: JavaServer Faces Group <jav...@googlegroups.com> Enviadas: Segunda-feira, 25 de Julho de 2011 14:51 Assunto: [javasf] Conversation Scope - Conversação não permanece
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to javasf: JavaServer Faces Group
Obrigado pela indicação Rafael!
Eu ja tinha chegado neste ponto, mas estou com a sensação de que nadei
nadei e morri na praia.
O problema é sim com a propagação da conversação, mas eu não sei como
propagar ela com os componentes q eu estou utilizando (no caso o
a4j:commandButton).
Eu li alguns links que diziam para utilizar s:conversationPropagation
dentro do meu command, mas não funcionou (pra falar a verdade nem tem
esse s: na minha aplicação rs)
alguem aí sabe mais ou menos o caminho das pedras q eu tenho q seguir?
Rafael Pestano
unread,
Jul 25, 2011, 9:07:04 PM7/25/11
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
lembrando que dessa maneira a requisição será propagada somente durante essa requisição sendo necessario continuar propagando durante as próximas requisições para o bean não "morrer", além disso, caso o usuário dê um refresh na tela a conversação não será propapagada, para resolver esse "problema" você pode passar o cid via url mas pra isso você precisa iniciar a conversação quando entrar na página
3 - aqui é o metodo chamado quando o usuário clica no botão editar da tabela: @Override protected String afterPrepareUpdate() { beginConversation(); return "addUserConversation.faces?cid=" + conversation.getId() + "&faces-redirect=true"; }
Enviadas: Segunda-feira, 25 de Julho de 2011 17:58 Assunto: [javasf] Re: Conversation Scope - Conversação não permanece
Fillipe Aguiar Soares
unread,
Jul 26, 2011, 2:39:36 PM7/26/11
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to javasf: JavaServer Faces Group
Olá Rafael!
Obrigado pela resposta, eu estou há um tempo nisso novamente, mas
ainda nada.
Fiz o que vc me indicou, mas a conversação parece que é perdida.
O servidor lança essa exception:
org.jboss.weld.context.NonexistentConversationException: WELD-000321
No conversation found to restore for id
at
org.jboss.weld.jsf.WeldPhaseListener.activateConversations(WeldPhaseListener.java:
108)
at
org.jboss.weld.jsf.WeldPhaseListener.beforePhase(WeldPhaseListener.java:
84)
at com.sun.faces.lifecycle.Phase.handleBeforePhase(Phase.java:228)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:99)
at
com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:
113)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:
118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:409)
at
org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:
1534)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
281)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
175)
at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:
655)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:
595)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
at
com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:
91)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
162)
at
org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:
326)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
227)
at
com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:
170)
at
com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:
822)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:
719)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:
1013)
at
com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:
225)
at
com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:
137)
at
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:
104)
at
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:
90)
at
com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:
79)
at
com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:
54)
at
com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:
59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool
$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool
$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:662)
Estou aki tentando, mas não faço a menor idéia de como recuperar essa
conversação, ainda não achei algo explicativo sobre isso, mas parece
que ta esquentando.
Valew pela ajuda, se vc ou mais alguem souber o que poder ser isso
tudo q está acontecendo com minha aplicação, por favor me ajudem a
entender, o maior objetivo, no fim das contas é esse, entender e
aprender a trabalhar com Conversation Scope no JSF + Richfaces.
Obrigado!
Rafael Pestano
unread,
Jul 26, 2011, 5:54:26 PM7/26/11
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to jav...@googlegroups.com
Felipe, esse erro é tipo de quando se tenta propagar uma conversação que não existe, ou seja, antes de propagar você tem que ter "startado" ela.
Att,
--
Rafael Mauricio Pestano Graduando em Ciência da Computação UFRGS
Assunto: [javasf] Re: Conversation Scope - Conversação não permanece
Fillipe Aguiar Soares
unread,
Jul 28, 2011, 11:32:08 AM7/28/11
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to javasf: JavaServer Faces Group
Mas eu startei ela com um conversation.begin().
Meu link do dataTable chama um metodo set do atributo tarefa, que
inicializa a tarefa com os atributos q ela precisa e a conversação,
daí o meu popup chama o metodo salvar pra passar um novo atributo pro
meu objeto tarefa, mas qndo o metodo salvar é chamado, a conversation
não existe mais, ou seja, o objeto tarefa vem com nulo.
Eu fiz testes fora do popup e a conversation ocorre normalmente, esse
problema só acontece qndo eu utilizo o <rich:popupPanel>
Reinaldo Bezerra
unread,
Jul 28, 2011, 5:48:49 PM7/28/11
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to jav...@googlegroups.com
Por "baixo do panos", para que o conversation scope do Seam funcione é necessário que a cada requisição do cid (conversation id) seja transferido entre as requisições, se ele não for então o escopo é perdido ou reiniciado. É como se cada cid guardasse uma parte da session isolada.
Você consegue ver se o parâmetro é transferido com uma ferramenta como Firebug do Firefox ou qualquer outra!