Desenvolvimento web
J2EE e Datasources
Helder da Rocha (helder@acm.org) www.argonavis.com.br 1
Recursos em servidores J2EE
Servlets rodando em servidores compatíveis J2EE podem acessar recursos através de JNDI (dominio java:comp/env)
Variáveis (environment entries) Referências para componentes EJB Referências para fábricas de recursos (conexões de banco de dados, URLs, serviço de e-mail, JMS, conectores EIS via JCA) Serviços
Para usar esses recursos
Servlet deve estar empacotado em um WAR Nome das variáveis e referências devem ser declarados no web.xml Servlet deve usar como contexto inicial o domínio java:comp/env
Elementos (filhos de ) usados no web.xml 2
Environment Entries
Alternativa global (para o WAR) aos
São acessíveis dentro de qualquer servlet ou JSP da aplicação WAR Não são visíveis por outras aplicações do servidor (não é um nome JNDI global - está abaixo de java:comp/env - é local à aplicação) Acessíveis via ferramentas de deployment (podem ser redefinidas)
Exemplo de uso dentro do cores/fundo rgb(255, 255, 200) java.lang.String
Tipos de dados legais são String e wrappers (Double, Integer, etc.)
Uso dentro do servlet
Context initCtx = new InitialContext(); String fgColor = (String) initCtx.lookup("java:comp/env/cores/fundo");
3
Componentes EJB
Servlets e JSPs podem se comunicar com EJBs da aplicação declarando uma referência associada ao bean chamado
A referência deve informar o tipo do bean (Session, Entity ou MessageDriven e suas interfaces remota e home. Cruise ship cabin ejb/CabinHome Entity com.titan.cabin.CabinHome com.titan.cabin.Cabin
Componentes EJB são retornados como objetos CORBA que precisam ser reduzidos através da função narrow.
InitialContext initCtx = new InitialContext(); Object ref = initCtx.lookup("java:comp/env/ejb/CabinHome"); CabinHome home = (CabinHome) PortableRemoteObject.narrow(ref, CabinHome.class);
4
Conexões de banco de dados
Fábricas de objetos são acessíveis via . A