Grails consumindo regras de negócio via JNDI
05/12/2014 15:49
0
Fala galera! Estou com um problema bastante chato aqui na nossa implementação, que é o seguinte. Existe uma parte core do sistema, que é compartilhada por outras duas aplicações onde usamos JNDI para consumir estas regras. Conceitualmente está tudo uma beleza e fazendo uns testes via Servlets/JSP a coisa estava indo bem. Acontece que quando implementei esse JNDI em minha aplicação Grails utilizei de Spring Beans para facilitar o acesso, porém quando coloco o .war no conteiner ele dá erro na criação do Bean jogando uma NameNotFoundException. Vejam as configurações:

[resources.groovy]
//Configurando o spring bean do GDS
globalGDSBean(org.springframework.jndi.JndiObjectFactoryBean) { bean ->
jndiName = "java:comp/env/bean/EventManagerBeanFactory"
}


[server.xml]
<!-- Configuracao do GDS 
-->
<Resource name="EventManagerBeanFactory" auth="Container"
type="event.manager.IApplicationContext"
factory="event.manager.globalresource.GlobalResourceTomcatFactory"
classProtocolo="event.manager.protocolo.ProtocoloLocalImp" />


[context.xml]
<ResourceLink global="bean/EventManagerBeanFactory"
name="bean/EventManagerBeanFactory"
type="event.manager.IApplicationContext" />


Esta é a exception gerada no stacktrace.log
2014-12-05 15:24:37,042 [localhost-startStop-1] ERROR StackTrace  - Full Stack Trace:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'globalGDSBean': Invocation of init method failed; nested exception is javax.naming.NameNotFoundException: Name [bean/EventManagerBeanFactory] is not bound in this Context. Unable to find [bean].
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: javax.naming.NameNotFoundException: Name [bean/EventManagerBeanFactory] is not bound in this Context. Unable to find [bean].
at org.apache.naming.NamingContext.lookup(NamingContext.java:819)
at org.apache.naming.NamingContext.lookup(NamingContext.java:167)
at org.apache.naming.factory.ResourceLinkFactory.getObjectInstance(ResourceLinkFactory.java:92)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321)
at org.apache.naming.NamingContext.lookup(NamingContext.java:842)
at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
at org.apache.naming.NamingContext.lookup(NamingContext.java:830)
at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
at org.apache.naming.NamingContext.lookup(NamingContext.java:830)
at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
at org.apache.naming.NamingContext.lookup(NamingContext.java:830)
at org.apache.naming.NamingContext.lookup(NamingContext.java:167)
at org.apache.naming.SelectorContext.lookup(SelectorContext.java:156)
at javax.naming.InitialContext.lookup(InitialContext.java:411)
... 5 more


Se alguém puder ajudar a entender o que está ocorrendo eu agradeço.
Att,
Tags: JNDI


0
Respondendo a pergunta, o erro era bastante simples.

Na configuração do Resource no attr name faltou colocar 'bean/' antes.




Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto