INE6514
Web Services

Prof. Frank Siqueira

Programa de Pós-Graduação em Ciência da Computação
Universidade Federal de Santa Catarina
 

INE6514 | Descrição | Exemplo | Dúvidas


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.

 


Descrição: C:\Users\Frank\Documents\INE5418\Web\WebServices\index_arquivos\image001.jpg

 

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.

 

Descrição: C:\Users\Frank\Documents\INE5418\Web\WebServices\index_arquivos\image002.jpg

 

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.

Descrição: C:\Users\Frank\Documents\INE5418\Web\WebServices\index_arquivos\image003.jpg

 

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:


Descrição: C:\Users\Frank\Documents\INE5418\Web\WebServices\index_arquivos\image004.jpg

 

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


Descrição: C:\Users\Frank\Documents\INE5418\Web\WebServices\index_arquivos\image005.jpg

 

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


Descrição: C:\Users\Frank\Documents\INE5418\Web\WebServices\index_arquivos\image006.jpg

 

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.


Descrição: C:\Users\Frank\Documents\INE5418\Web\WebServices\index_arquivos\image007.jpg

 

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:

Descrição: C:\Users\Frank\Documents\INE5418\Web\WebServices\index_arquivos\image008.jpg

 

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


Descrição: C:\Users\Frank\Documents\INE5418\Web\WebServices\index_arquivos\image009.jpg

 

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.

 

Descrição: C:\Users\Frank\Documents\INE5418\Web\WebServices\index_arquivos\image010.jpg

 

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

 

Descrição: C:\Users\Frank\Documents\INE5418\Web\WebServices\index_arquivos\image011.jpg

 

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.