Duas cópias da mesma aplicação com BD diferente com conflito

6 respostas
carlos.lino87

Pessoal, criei duas versões de uma aplicação web com o vRaptor, e só alterei a configuração do Hibernate e as anotações das classes, pois precisava urgentemente trabalhar com duas bases de dados.

Funcionou! hehe mas tem um problema.

Quando eu acesso as duas aplicações ao mesmo tempo, em duas abas ou duas janelas do navegador, dá um erro. Parece que quando eu entro na segunda aplicação ele apaga o usuario (Session scope) da outra, daí tenho que logar de novo. Então a outra que cai.

Com o Chrome e o firefox dá certo, um em cada navegador.

Será que é porque os pacotes, classes tem o mesmo nome?
Será um bug do vraptor?

Alguem já passou por isso?

Abaixo está o log de quando logo no segundo sistema:

21:51:53,867 DEBUG [VRaptor             ] VRaptor received a new request
21:51:53,869 DEBUG [DefaultRequestExecution] executing stack  DefaultRequestExecution
21:51:53,884 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ResourceLookupInterceptor
21:51:53,884 DEBUG [DefaultResourceTranslator] trying to access /
21:51:53,884 DEBUG [DefaultResourceTranslator] found resource [DefaultResourceMethod: LoginController.loginLoginController.login()]
21:51:53,886 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor FlashInterceptor
21:51:53,887 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor InterceptorListPriorToExecutionExtractor
21:51:53,889 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor HibernateTransactionInterceptor
21:51:53,893 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor InstantiateInterceptor
21:51:53,906 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExceptionHandlerInterceptor
21:51:53,907 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExecuteMethodInterceptor
21:51:53,907 DEBUG [ExecuteMethodInterceptor] Invoking LoginController.login()
21:51:53,908 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ForwardToDefaultViewInterceptor
21:51:53,908 DEBUG [ForwardToDefaultViewInterceptor] forwarding to the dafault page for this logic
21:51:53,912 DEBUG [DefaultPageResult   ] forwarding to /WEB-INF/jsp/login/login.jsp
21:51:53,913 DEBUG [DefaultStaticContentHandler] Deferring request to container: /teste/WEB-INF/jsp/login/login.jsp 
21:51:53,914 DEBUG [VRaptor             ] VRaptor ended the request
21:51:56,604 DEBUG [VRaptor             ] VRaptor received a new request
21:51:56,606 DEBUG [DefaultRequestExecution] executing stack  DefaultRequestExecution
21:51:56,621 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ResourceLookupInterceptor
21:51:56,621 DEBUG [DefaultResourceTranslator] trying to access /ip/principal
21:51:56,622 DEBUG [DefaultResourceTranslator] found resource [DefaultResourceMethod: IpController.principalIpController.principal()]
21:51:56,625 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor FlashInterceptor
21:51:56,626 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor InterceptorListPriorToExecutionExtractor
21:51:56,627 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor HibernateTransactionInterceptor
21:51:56,629 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor LoginInterceptor
21:51:56,635 DEBUG [DefaultLogicResult  ] redirecting to class LoginController
21:51:56,636 DEBUG [ParanamerNameProvider] Found parameter names with paranamer for LoginController.login() as []
21:51:56,636 DEBUG [AsmBasedTypeCreator ] Trying to make class for LoginController$login$595143120$4
21:51:56,636 DEBUG [ParanamerNameProvider] Found parameter names with paranamer for LoginController.login() as []
21:51:56,636 DEBUG [AsmBasedTypeCreator ] Parameter names found for creating type are: []
21:51:56,636 DEBUG [AsmBasedTypeCreator ] Methods: []
21:51:56,636 DEBUG [AsmBasedTypeCreator ] Fields: []
21:51:56,636 DEBUG [CacheBasedTypeCreator] cached generic type for method [DefaultResourceMethod: LoginController.loginLoginController.login()]
21:51:56,636 DEBUG [DefaultLogicResult  ] redirecting to /mdapesquisa/
21:51:56,638 DEBUG [VRaptor             ] VRaptor ended the request
21:51:56,810 DEBUG [VRaptor             ] VRaptor received a new request
21:51:56,812 DEBUG [DefaultRequestExecution] executing stack  DefaultRequestExecution
21:51:56,833 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ResourceLookupInterceptor
21:51:56,833 DEBUG [DefaultResourceTranslator] trying to access /
21:51:56,833 DEBUG [DefaultResourceTranslator] found resource [DefaultResourceMethod: LoginController.loginLoginController.login()]
21:51:56,835 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor FlashInterceptor
21:51:56,836 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor InterceptorListPriorToExecutionExtractor
21:51:56,837 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor HibernateTransactionInterceptor
21:51:56,842 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor InstantiateInterceptor
21:51:56,846 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExceptionHandlerInterceptor
21:51:56,848 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExecuteMethodInterceptor
21:51:56,848 DEBUG [ExecuteMethodInterceptor] Invoking LoginController.login()
21:51:56,848 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ForwardToDefaultViewInterceptor
21:51:56,848 DEBUG [ForwardToDefaultViewInterceptor] forwarding to the dafault page for this logic
21:51:56,853 DEBUG [DefaultPageResult   ] forwarding to /WEB-INF/jsp/login/login.jsp
21:51:56,853 DEBUG [DefaultStaticContentHandler] Deferring request to container: /mdapesquisa/WEB-INF/jsp/login/login.jsp 
21:51:56,861 DEBUG [VRaptor             ] VRaptor ended the request

6 Respostas

Lucas_Cavalcanti

vc está com o filtro do VRaptor declarado duas vezes no web.xml?

ou tá fazendo o deploy de dois wars com o VRaptor no mesmo servidor?

jamirdeajr

Creio que o problema seja a limitação do browser, que vai sempre utilizar a mesma sessão para todas as abas. O IE se não me engano tem até uma opção no menu para forçar criar sessões diferentes, não sei se já fizeram isso para os outros.
Tem alguns tópicos aqui que falam sobre o assunto:
http://www.guj.com.br/java/227866-mesma-sessao-em-abas-diferentes-do-navegador#1168186
http://www.guj.com.br/java/147382-mesma-sessao-para-duas-janelas-diferentes

carlos.lino87

Lucas Cavalcanti:
vc está com o filtro do VRaptor declarado duas vezes no web.xml?

ou tá fazendo o deploy de dois wars com o VRaptor no mesmo servidor?

Estou com 2 wars no mesmo servidor, mas fiz o seguinte:
Estou usando o tomcar, e criei uma pasta no webapps do tomcat chamada “nemda”, e lá dentro coloquei minhas duas aplicações.
redirecionei um outro domínio para essa pasta.

Daí inves da a aplicação rodar em /nemda/app1 ou /nemda/app2, roda em: <outro_host>/app1 e <outro_host>/app1.

O que eu mudei agora foi o seguinte, deixei somente uma aplicação dentro dessa pasta demda, como ROOT, e a outra deixei no webapp, normal.

Agora acesso as aplicações assim:
<host_host>/app1
<outro_host>

Dessa forma parou de dar esse conflito.

PS. não sei se ficou confusa minha explicação, mas é que não fui eu quem configurou o tomcat assim, então não entendi direito.

carlos.lino87

jamirdeajr:
Creio que o problema seja a limitação do browser, que vai sempre utilizar a mesma sessão para todas as abas. O IE se não me engano tem até uma opção no menu para forçar criar sessões diferentes, não sei se já fizeram isso para os outros.
Tem alguns tópicos aqui que falam sobre o assunto:
http://www.guj.com.br/java/227866-mesma-sessao-em-abas-diferentes-do-navegador#1168186
http://www.guj.com.br/java/147382-mesma-sessao-para-duas-janelas-diferentes

Entendi, mas no meu caso são 2 wars diferentes.

O que eu fiz foi o seguinte, configurei assim no server.xml

www..com.br

E coloquei as duas aplicações dentro de "webapps/nemda ", por exemplo, app1 e app2

boneazul

Editando a asneira!!!

G

boneazul, você está errado. Cada aplicação trabalha dentro de um sandbox, ou seja, são independentes. Os objetos de Session de uma aplicação não são influencia nos de outra.

Criado 18 de abril de 2011
Ultima resposta 21 de abr. de 2011
Respostas 6
Participantes 5