[jboss-user] [JBoss Seam] - @Begin issue. Cannot make it work how we need

anescu do-not-reply at jboss.com
Fri May 11 12:12:22 EDT 2007


Hi,

So, I have a generated Seam app, and we have placed a combo box and a button on top, near the "login" part (inside the loginout.xhtml file).
The button calles a method, which has the @Begin annotation.
After I login, I choose a value from the drop down and press the Change button. This will place some objects on the Conversation context. 
i also removed the propagation="none" from the s:link elements, so now i can move around with the setted values. But if I change the value for the second time I get an exception about calling begin from inside a conversation, with hint that I should use (join=true). 

So, here is what needs to work, and what is happening:
I need to allow the objects that are placed on context to exist in 2 different conversations, that is, if the user logs in, and sets the values from the combo to X & Y, and then opens a likn in another tab/browser, having the same session, he should be able to select from the combo a different option and work in both browsers concurently, with different values placed on the conversation context.

But, this is what I get:
1) If I place @Begin on the method that is called from the interface when changing the value, when I change the combo value from either of the windows I get an error, with the above hint.
2) If I use @Begin(join=true), then both windows will use the same conversation, that is, if I change from the combo in window 1 and then navigate somewhere else in window 2, the values from the conversation context will have the same values as those set in window 1
3) If I use for example this code, then it's like @Begin is not called:
//method called to change the value.
  | 	@End
  | 	public void changeSelected()
  | 	{
  | 		doStuff();
  | 	}
  | 
  | 
  | //method called from first one.
  | 	@Begin
  | 	public void doStuff()
  | 	{
  | 	//...
  | 	}
4) The same if i use this to close the existing conversation and start a new one:
//method called to change the value.
  | 	@End
  | 	@Begin
  | 	public void changeSelected()
  | 	{
  | 		doStuff();
  | 	}
  | 
  | 
  | //method called from first one.
  | 	public void doStuff()
  | 	{
  | 	//...
  | 	}

Am I missing something here? How do I end the conversation only when I want to change the value???

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4045059#4045059

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4045059



More information about the jboss-user mailing list