Descrição
Esta
atividade mostra como desenvolver serviços Web em Java, utilizando a API
JAX-WS.
Implementação do Exemplo
As
instruções abaixo, adaptadas do tutorial Introdução aos serviços Web JAX-WS,
mostram como criar um serviço Web em Java e consumi-lo a partir de uma
aplicação cliente, utilizando o ambiente de desenvolvimento NetBeans e o servidor de aplicaçãoGlassfish (download para Windows/Linux).
Criando
um serviço Web
Inicie
o NetBeans e crie um novo projeto (menu Arquivo > Novo projeto, ou
Ctrl-Shift-N). Selecione aplicação Web na categoria Java Web. Nomeie o
projeto CalcWS e clique em Próximo. Na tela seguinte, selecione o servidor
Glassfish e clique em Finalizar.

Clique
com o botão direito do mouse no projeto CalcWS e escolha Novo > Serviço
Web. Chame o serviço Web de CalcWS e digite br.ufsc no Pacote. Clique em
Finalizar.

A
janela Projetos exibirá a estrutura do novo serviço Web e o seu código-fonte
será mostrado na área do editor.
O
serviço Web terá uma operação que efetua a soma de dois números recebidos de
um cliente.
Clique
em Projeto, e em seguida clique no botão Adicionar operação.

Agora
defina a operação. Na parte superior da caixa de diálogo Adicionar operação,
digite somar em Nome e digite int na lista suspensa Tipo de retorno.
Na parte inferior da caixa de diálogo, clique em Adicionar e crie um
parâmetro de tipo int chamado i. Em seguida, clique em
Adicionar novamente e crie um parâmetro de tipo int chamado j. Agora você deve ver o
seguinte:

Clique
em OK na parte inferior da caixa de diálogo Adicionar operação. O editor
agora exibe o seguinte:

Clique
em Código-fonte e visualize o código que você gerou nas etapas anteriores.

No
editor, modifique o código da operação add de modo a ter o seguinte (alterações
em negrito):
@WebMethod(operationName=
"somar")
public int somar(@WebParam(name = "i") int i, @WebParam(name =
"j") int j) {
return i+j;
}
Como
você pode ver no código acima, o serviço Web simplesmente recebe dois números
e retorna a soma deles.
Implantando e
testando o serviço Web
Quando
você implanta um serviço Web em um contêiner da Web, o NetBeans permite que
você teste o serviço Web para ver se funciona como o esperado. O aplicativo
Testador, fornecido pelo servidor GlassFish, é integrado no NetBeans para
essa finalidade
Primeiramente,
clique com o botão direito do mouse no projeto e escolha Implantar. O
NetBeans irá iniciar o servidor de aplicação, compilar o projeto e implantar
a aplicação no servidor. Você pode acompanhar o progresso dessas operações na
janela Saída.
Na
aba Projetos do NetBeans, abra a pasta Serviços Web do projeto CalcWS. Clique
com o botão direito do mouse em CalcWS e escolha a ação Testar serviço Web.

A
página do testador será aberta em seu navegador. Clique no link WSDL File
para visualizar o arquivo WSDL do serviço Web que você acabou de criar. Em
seguida, volte para a página anterior e digite dois números nas caixas de
texto, como mostrado abaixo, e clique no botão somar:

O
resultado produzido pela execução do método é exibido, assim como as
mensagens SOAP de requisição e de resposta:

Criando uma Aplicação Cliente para o
Serviço Web
Agora que você implantou o serviço Web,
precisa criar um cliente para utilizar o método somar do serviço Web.
Selecione o menu Arquivo > Novo projeto
(Ctrl-Shift-N). Selecione Aplicativo Java na categoria Java. Nomeie o projeto
CalcCliente. Deixe selecionada a opção Criar classe principal e aceite todas
as outras configurações padrão. Clique em Finalizar.
Clique
com o botão direito do mouse no projeto CalcCliente e escolha Novo >
Cliente para serviço Web. Em Projeto, clique em Procurar. Selecione o serviço
Web criado anteriormente e clique em OK. Deixe as outras configurações com o
padrão e clique em Finalizar.

A
janela Projetos exibe a referência para o serviço Web, no qual aparece o
método somar que você criou.

Arraste
o item que representa o método somar da janela acima para o arquivo Main.java
no editor de código-fonte. Será criado o seguinte método:
private static
int somar(int i, int j) {
br.ufsc.CalcWSService
service = new br.ufsc.CalcWSService();
br.ufsc.CalcWS port = service.getCalcWSPort();
return port.somar(i, j);
}
Observação: como alternativa,
em vez de arrastar o item somar,
você pode clicar com o botão direito do mouse no editor e escolher a opção de
menu Inserir código > Operação de chamada a serviço Web.
Adicione
ao método main() um código que obtenha dois inteiros, chame o método somar e
imprima o resultado da sua execução.
public static void
main(String[] args) {
try {
java.io.BufferedReader reader = new java.io.BufferedReader(new
java.io.InputStreamReader(System.in));
System.out.print("Entre com primeiro
valor: ");
int i =
Integer.parseInt(reader.readLine());
System.out.print("Entre com segundo
valor: ");
int j =
Integer.parseInt(reader.readLine());
System.out.println("Resultado da soma
dos valores: " + somar(i, j));
} catch (Exception
ex) {
ex.printStackTrace();
}
}
Execute
a aplicação cliente (tecla F6, ou menu Executar > Executar projeto
principal). Digite dois números inteiros na janela de saída. O serviço Web
será invocado e retornará o resultado da soma dos dois números, que será
mostrado na janela de saída.
Dúvidas?
Atendimento
aos Alunos
- Horário:
Terças-feiras das 16:20 às 18:00.
- Local:
Prédio do INE - Sala 305.
E-Mail
f r a n k
@ i n f . u f s c . b r
Mantida
por Frank Siqueira. Atualizada
em 18/10/2012.
|