Eae pessoal,
É o seguinte… estou com uma thread no Websphere onde tenho que acessar os JNDI para conectar na base. Configurei as refferências de recursos, marquei tudo como Sharable no web.xml.
mas quando tento fazer o lookup tomo um:
javax.naming.ConfigurationException: A JNDI operation on a “java:” name cannot be completed because the serverruntime is not able to associate the operation’s thread with any J2EE application component. This condition can occur when the JNDI client using the “java:” name is not executed on the thread of a server application request. Make sure that a J2EE application does not execute JNDI operations on “java:” names within static code blocks or in threads created by that J2EE application. Such code does not necessarily run on the thread of a server application request and therefore is not supported by JNDI operations on “java:” names.
[Root exception is javax.naming.NameNotFoundException: Name jdbc not found in context “java:comp/env”.]
O trecho de código:
Context objContext = new InitialContext();
DataSource objDataSource = (DataSource) objContext.lookup(“java:comp/env”).lookup(“jdbc/MinhaConexao”);
Pelo que já li, o motivo é que a thread não enxerga as variáveis de referência do aplicativo. E uma solução seria usar Factory para as conexões e outra seria fazer o lookup antes de chamar o thread e então passar para ele como argumento.
Não tem mesmo outra saída? Será que no XML não consigo fazer alguma confiuração ou mesmo no momento do lookup para que a thread enxergue as conexões do Websphere?
Vlw a força
FELIZ ANO NOVO!