Clique aqui para ler esse artigo em PDF.
EJBs a Serviço
Exponha Session Beans como Web Services
Aprenda como disponibilizar um Enterprise JavaBean existente como um serviço web e acessá-lo de outras linguagens e plataformas
Uma das grandes novidades da especificação EJB 2.1 foi o suporte a web services. Com a nova versão EJBs podem ser expostos como web services, tornando-se acessíveis via SOAP (Simple Object Access Protocol) por clientes de outras plataformas ou tecnologias. Este artigo mostra como alterar um EJB paraque possa ser acessado como web service e como acessar o serviço exposto usando um cliente escrito em outra linguagem.
Instalando o J2EE SDK 1.4
Para executar os exemplos vamos precisar de um servidor de aplicações que suporte J2EE 1.4. O J2EE SDK 1.4 da Sun vem com um servidor gratuito aderente ao padrão J2EE 1.4. Após o download desse SDK (veja links), execute o arquivo e siga os passos na tela (Figura 1). A senha solicitada no passo seguinte será usada para acessar a interface administrativa do servidor, e uma tela final de confirmação indica que a instalação foi bem sucedida.
Figura 1. Instalação do J2EE SDK 1.4: tela inicial e especificação da senha da interface administrativa
Iniciando o servidor
O servidor pode ser iniciado através do utilitário asadmin, localizado no diretório
bin do servidor:
C:\Sun\AppServer\bin>asadmin
Use “exit” to exit and “help” for online help.
asadmin> start-domain
Starting Domain domain1, please wait.
Log redirected to
C:\Sun\AppServer\domains\domain1\logs\server.log.
Domain domain1 started.
Após iniciar o servidor, a interface administrativa pode ser acessada via browser em http://localhost: 4848/admin (veja a Figura 2). É necessário autenticar-se com o nome de usuário e senha especificados na instalação.
Figura 2. Interface administrativa do servidor do J2EE SDK 1.4
Criação e deploy do EJB
Criaremos um EJB simples para depois expô-lo como um web service. O bean terá dois métodos:
double celsiusToFarenheit(double celsius);
double farenheitToCelsius(double farenheit);
As Listagens 1, 2 e 3 mostram as interfaces remota e home, além da classe de implementação do bean. Os descritores de deployment (padrão e proprietário) estão nas Listagens 4 e 5. Esses cinco fontes são empacotados num arquivo bean.jar, respeitando a estrutura apresentada na Figura 3.
O deploy do EJB pode ser feito com um assistente chamado via o comando Applications>EJB Modules da interface administrativa do servidor (Figura 4).
Figura 3. Módulo EJB de exemplo
Figura 4. Deployment do EJB
Mapeamento Java/WSDL
Para que uma interface remota de um session bean stateless possa ser mapeada para WSDL, ela pode conter somente os seguintes tipos Java:
?Tipos primitivos: boolean, byte, short"