I'm having a problem with a difference in behaviour between JBoss 3.2.7 and JBoss 4.2.2.
I have a servlet which generates VoiceXML code (let's call this servlet the HttpAcceptor). A request to this servlet is made from a Nortel VXML interpreter (voice browser). The VXML code references a GRXML grammar file, which is served through a 2nd servlet (let's call this the ResourceServlet). However, this 2nd request for the grammar comes from a different server. There is a dedicated server for running the speech recogniser software (OpenSpeech Recognizer), and this is on a separate server from the VXML interpreter. While it is the VXML interpreter that makes the initial request to the HttpAcceptor, it is OSR that makes the subsequent request to the ResourceServlet for the grammar.
While handling the initial request, the HttpAcceptor sets an attribute on the HttpSession. Then, when the request comes in to the Resource Servlet, it looks for this attribute on the HttpSession (as a security mechanism). When running JBoss 3.2.7, this attribute is populated on the HttpSession object, and everything works as expected. However, in JBoss 4.2.2.GA, the HttpSession on the ResourceServlet request is null. Consequently, the attribute is not populated, and the ResourceServlet rejects the request.
Does anyone know why the HttpSession would be null? It's a slightly strange scenario, since the HttpSession is shared between requests from two separate servers, but since it works in JBoss 3.2.7 I'm surprised it doesn't work in 4.2.2. Is there some configuration change in 4.2.2 that might make this work?
Thanks in advance for any suggestions!