Como exemplo vamos utilizar a chamada de um Stateless Session Bean por uma aplicação standalone, para isto sera utilizado Eclipse Indigo e Weblogic 11gR1.
Para criar um projeto EJB no eclipse é simples, basta clicar com o botão direto New → EJB project, como mostra as imagem abaixo:
Agora vamos criar uma interface para um bean remoto:
package br.com.teste; import javax.ejb.Remote; @Remote public interface HelloBeanRemote { //JNDI name static final String JNDI_NAME = “HelloBean#br.com.teste.HelloBeanRemote”; public String test( ); } Agora vamos criar uma classe que implemente esta interface: package br.com.teste; import javax.ejb.Stateless; /** * Session Bean implementation class HelloBean */ @Stateless (name = “HelloBean” , mappedName = “HelloBean”) public class HelloBean implements HelloBeanRemote{ /** * Default constructor. */ public HelloBean() { // TODO Auto-generated constructor stub } public String test() { return “Remote is Ready”; } }
Criamos Stateless pois não precisamos guardar nenhum estado nesta execução.
Após a criação dessas duas classes vamos fazer deploy da aplicação para o
servidor Weblogic. Faça a integração do Weblogic com o eclipse que
facilitará muito o trabalho!
Para certificar que tudo ocorreu bem acesse o console administrativo do
Weblogic (geralmente http://localhost:7001/console/ ), selecione o
domínio em que o deploy foi feito e vá em Environment → Servers →
AdminiServer ( ou o servidor que o deploy da aplicação foi feito) → View
JNDI Tree, deve ser aberto uma arvore que mostrara todos os objetos
disponíveis no JNDI global namespace, como mostra na imagem abaixo:
Na tag Binding Name deve ter algo parecido com
HelloBean#br.com.teste.HelloBeanRemote esse endereço que vamos utilizar
para recuperar a instancia do Stateless Bean no lookup.
Agora vamos criar uma aplicação cliente clicando em New → JavaProject, crie uma classe chamda EjbCliente :
package br.com.tutorial; import java.util.Hashtable; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import br.com.teste.HelloBean; import br.com.teste.HelloBeanRemote; public class EjbCliente { public static void main(String[] args) { EjbCliente client = new EjbCliente(); client.connect(); } public void connect(){ try { /* — If is WebLogic — */ Context ctx = null; Hashtable ht = new Hashtable(); ht.put(Context.INITIAL_CONTEXT_FACTORY,”weblogic.jndi.WLInitialContextFactory”); ht.put(Context.PROVIDER_URL,”t3://localhost:7001″); ctx = new InitialContext(ht); HelloBeanRemote helloBean = (HelloBeanRemote) ctx.lookup (HelloBeanRemote.JNDI_NAME); System.out.println(helloBean.test()); } catch (NamingException e) { e.printStackTrace(); } } }Adicione a seguinte bibliotecas no classpath da aplicação cliente :
wlclient.jar
*Essa biblioteca pode ser encontrada dentro da pasta do Weblogic, não
adicione outras bibliotecas do Weblogic além desta no projeto ou poderá
ocasionar um erro.
Na aba project adicione o projeto Tutorial_JNDI_webLogic pois la
estão presentes as referências que o projeto cliente precisa para
executar.
Agora execute o cliente e o seguinte resultado deve aparecer :
Remote is Ready!
Nenhum comentário:
Postar um comentário