Descrição
Nessa
aula prática você deve aprender a desenvolver um serviço Web e a criar um cliente
para o serviço Web em Java.
Aula Prática
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ção Glassfish
(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 > Web Service. 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.
Clique
em Design, e em seguida clique no botão Adicionar operação.

Agora iremos definir a
operação. O serviço Web terá uma operação que efetua a soma de dois números inteiros
recebidos de um cliente. 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 do método somar 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 Web Services do projeto CalcWS. Clique com o botão direito do
mouse em CalcWS e escolha a ação Testar Web Service.

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 Web
Service. Clique no botão Procurar à direita de Projeto. Selecione o
serviço Web criado anteriormente e clique em OK. Deixe as outras
configurações com os valores padrão e clique em Finalizar.

A janela Projetos irá
exibir a referência para o Web Service, e nela aparecerá o método somar que
você criou.

Arraste o item que
representa o método somar da janela acima para a classe principal do projeto
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 Web Service.
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.
|