[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-777) Subsequent Remoting-Calls loose conversation-context.
Stefan Frank (JIRA)
jira-events at jboss.com
Mon Feb 5 11:39:20 EST 2007
Subsequent Remoting-Calls loose conversation-context.
-----------------------------------------------------
Key: JBSEAM-777
URL: http://jira.jboss.com/jira/browse/JBSEAM-777
Project: JBoss Seam
Issue Type: Bug
Components: Remoting
Affects Versions: 1.1.5.GA
Environment: jboss-4.0.4.GA, WinXP, jdk1.5.0_06
Reporter: Stefan Frank
Subsequent calls to a StatefulSessionBean which has methodes exposed via @WebRemote loose their conversation-context.
The Scenario:
User loads Page with a Multiple-Choice-Test. All questions are fetched from the server, each question is setup via javascript on the client. Each answer is sent to the server. At the end of the test, we redirect to a page to display the test-results.
We try to implement this using:
- Seam.Remoting to make up the Connection
- Javascript to setup the questions
- A stateful session Bean to hold the test and the results.
- A conversation to demarcate start and end of the test.
The problem is, that the remoting does not reconnect to the SSB, but instead starts new SSB's. Here is a rough sketch of the code:
@Stateful
@Name ("examManager")
@Scope(ScopeType.SESSION)
public class ExamManagerBean implements ExamManager {
@Begin
public Test startTest(int testId) {
....
}
public void sendAnswer(int questionId, int answerId){
....
}
@End
public String getResults(){
...;
}
}
the javascript:
var remoteManager = Seam.Component.getInstance("examManager");
remoteManager.startTest(id, testLoaded)
function testLoaded(test){
setupNextQuestion(test);
....
}
function evaluateAnswer(){
remoteManager.sendAnswer(test.questions[questionIdx].id, answerId, answerCallback);
....
}
The Test is fetched correctly and the first two calls to remoteManager.sendAnswer go to the same SSB with which the Test was started, the third call triggers the create of a new SSB and fails becaus the startTest() was never called and therefore the test not initialized.
It appears, that conversation-context is lost and a new Conversation started. Calls to Seam.Remoting.getContext().getConversationId() confirm, that the Conversation-Context is still correct in the client.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the seam-issues
mailing list