// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= Interoperabilidade Avançada do Web Service
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Interoperabilidade Avançada do Web Service - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Interoperabilidade Avançada do Web Service

A Interoperabilidade Avançada do Web Service (WSIT), também conhecida como “Qualidade de Serviço” do Web Service, abrange os componentes que ativam a interoperabilidade entre os Web services Java e os Web services .Net. Este documento demonstra o suporte no IDE para configurar um web service e um cliente que usa WSIT. Para obter mais informações sobre como usar WSIT, consulte o link:http://docs.oracle.com/cd/E19159-01/820-1072/ahibn/index.html[+Capítulo 3 Exemplo de WSIT Usando um Contêiner Web e NetBeans IDE+] em link:http://docs.oracle.com/cd/E19159-01/820-1072/index.html[+O Tutorial do WSIT+]


image::images/netbeans-stamp-74-73-72.png[title="O conteúdo desta página se aplica ao NetBeans IDE 7.2, 7.3 e 7.4"]


*Para seguir este tutorial, são necessários os recursos e o software a seguir.*

|===
|Software ou Recurso |Versão Necessária 

|link:https://netbeans.org/downloads/index.html[+NetBeans IDE+] |Pacote de download do Java EE 

|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+JDK (Java Development Kit)+] |versão 6 ou versão 7 

|Servidor de aplicações ou Web compatível com Java EE |GlassFish Server Open Source Edition 3.1.x, 4.x
ou 
link:http://www.oracle.com/technetwork/middleware/weblogic/overview/index.html[+Oracle WebLogic Server+] 11g ou 12c 
|===

O GlassFish Server pode ser instalado com a distribuição Web e Java EE do NetBeans IDE. Como alternativa, você pode visitar a link:https://glassfish.java.net/download.html[+página de downloads do GlassFish Server+] ou a link:http://tomcat.apache.org/download-60.cgi[+página de downloads do Apache Tomcat+].

*Importante: *os projetos Java EE requerem GlassFish Server 3.1.x, 4.x ou Oracle WebLogic Server 12c.


== Introdução

Os componentes relacionados à interoperabilidade avançada de Web services entram em quatro categorias principais:

* *Bootstrapping e configuração.* O processo que é executado para criar um cliente de Web service que pode acessar e consumir um Web service.
* *Segurança da mensagem* As opções de configuração de segurança a seguir são suportadas:
* Destinos para opções de autenticação e criptografia
* Segurança de Web services do Cliente/serviço
* Opções de confiança do cliente/serviço
* Opções avançadas de configuração
* Opções de configuração de armazenamento de chaves
* *Otimização da mensagem.* Garante que as mensagens de Web services sejam transmitidas pela Internet da maneira mais eficiente. A otimização de mensagens é alcançada na comunicação dos Web services codificando as mensagens antes da sua transmissão e decodificando-as quando elas alcançam seu destino final.
* *Mensagem confiável.* Medido pela capacidade do sistema de distribuir mensagens do ponto A para o ponto B sem erros.

A “Qualidade de serviço” é configurada no Editor de Atributos do Web Service, que pode ser acessado na janela Projetos, no nó que representa o Web service ou o cliente. Este documento apresentará duas amostras que são distribuídas com o IDE: uma amostra de web service e uma amostra de web service seguro. Este documento mostrará algumas diferenças entre as amostras e também como usar o IDE para configurar a segurança para seus próprios web services e clientes.

Para obter um guia completo e abrangente sobre os tópicos relacionados à “Qualidade de Serviço”, consulte link:http://download.oracle.com/docs/cd/E17802_01/webservices/webservices/reference/tutorials/wsit/doc/index.html[+O tutorial do WSIT+].  


== Conhecendo a amostra de calculadora

O objetivo deste exercício é conhecer a amostra de Calculadora que está incorporada no IDE. Em contraste com o próximo exemplo, este exemplo não é seguro, como poderá ser visto ao examinar o Web service.


=== Explorando a Amostra

Neste exercício você usará o assistente Novo Projeto para criar a amostra, examinará a amostra no IDE e implantará a aplicação.

1. Escolha Arquivos > Novo Projeto (Ctrl-Shift-N no Linux e no Windows, ⌘-Shift-N no MacOS) para abrir o assistente Novo Projeto.
2. Expanda a categoria Amostras e selecione o nó Web Services e, em seguida, selecione a amostra Calculadora. Clique em Próximo.
image::images/wsit-newproject.png[title="Assistente Novo Projeto que mostra a amostra da calculadora"]
3. Confirme se um servidor compatível com Java EE está selecionado na lista drop-down Servidor. Clique em Finalizar.

Quando clicar em Finalizar o assistente criará dois projetos:

* *CalculatorApp* fornece um Web service chamado CalculatorWS que expõe uma operação de nome “add”.
* *CalculatorClientApp* fornece um cliente, de nome CalculatorWSService, que invoca a operação “add” do Web service.

O serviço CalculatorClientApp pode ser marcado com um ícone de erro porque o IDE não pode localizar o WSDL para o serviço CalculatorWS. O erro será resolvido depois que você implantar CalculatorApp e limpar e construir o CalculatorClientApp.

image::images/wsit-projects.png[title="Janela Projetos que exibe o Web service e o cliente"]
4. Clique duas vezes no web service CalculatorWS para abrir o arquivo no editor e clique na guia Design na parte superior do editor para exibir o web service no designer visual.
image::images/wsit-design.png[title="Serviço CalculatorWS noa guia Design GUI (Visual Designer)"]

*Observação:* na seção Qualidade de Serviço na guia design do serviço você pode ver que _nenhuma_ opção está ativada. Como resultado, os componentes da Qualidade de Serviço não foram aplicados a esse Web service em questão. Você verá um web service no qual um componente da Qualidade de Serviço _é_ ativado quando você criar o web service protegido.

Para obter um tutorial completo sobre Web services no IDE, consulte link:jax-ws.html[+Introdução aos Web services JAX-WS+].


=== Implantando e Testando o Exemplo de Calculadora

1. Clique com o botão direito do mouse no projeto CalculatorApp e selecione Executar.

O servidor é iniciado e o web service é implantado no servidor. Você verá uma página aberta em seu browser default que fornece alguns detalhes do serviço.

image::images/wsit-browser1.png[title="Janela de informações do CalculatorWS no browser"]
2. Clique no link WSDL na página do browser para ver o arquivo WSDL que define o web service. 
image::images/wsit-browser2.png[title="WSDL do Calculator WS no browser"]

*Observação.* Se o WSDL não for exibido, verifique o URL na barra de localização do browser. Ele deverá apontar para  ``http://localhost:_seu_número_de_porta_/CalculatorApp/CalculatorWSService?WSDL`` .

3. Na janela Projetos do IDE, clique com o botão direito do mouse em CalculatorWS no nó do Web Services e escolha Testar Web Service no menu pop-up.

Quando você testa o web service, uma página para testar o serviço é aberta em seu browser.

image::images/wsit-browser3.png[title="Calculator WS Tester no browser"]

O IDE pode fornecer um cliente para testar seu web service e abrir a aplicação de teste em seu browser. Na aplicação de teste é possível inserir os valores para cada campo definido no Web service. A aplicação de teste tem um botão é identificado depois do nome da operação no serviço. Quando clicar no botão você verá o resultado da chamada da operação.

4. Examine o projeto CalculatorClientApp na janela Projetos para obter emblemas de erros.

Se houver ícones de erro para  ``ClientServlet.java`` , clique com o botão direito no nó do projeto e escolha Limpar e Construir no menu pop-up. Os erros surgiram porque o serviço CalculatorWS não foi implantado. Agora que ele está implantado, o IDE pode fazer parsing de seu WSDL e a compilação do ClientServlet.

5. Clique com o botão direito do mouse no nó do projeto CalculatorClientApp e selecione Executar.

Ao executar a aplicação, uma interface do serviço será aberta em seu browser.

image::images/wsit-browser4.png[title="Cliente do Serviço da Calculadora no browser"]
6. Informe os valores nos dois campos e clique em Obter Resultado.

Ao clicar em Obter Resultado, o resultado da operação será recuperado no web service e exibido no cliente.

O web service está funcionando corretamente e o cliente recupera os resultados, mas este projeto não usar os componentes da Qualidade de Serviço. Na próxima seção, você verá como pode configurar os componentes da Qualidade de Serviço.


==   Conhecendo o Exemplo de Calculadora Segura

O objetivo deste exercício é examinar como um Web service seguro é configurado, e como um cliente interage com ele.


=== Explorando a Amostra

Neste exercício você usa o assistente Novo Projeto para criar a amostra e, em seguida, examinará como a Qualidade de Serviço é configurada para a aplicação.

1. Escolha Arquivos > Novo Projeto (Ctrl-Shift-N no Linux e no Windows, ⌘-Shift-N no MacOS) para abrir o assistente Novo Projeto.
2. Expanda a categoria Amostras e selecione o nó Web Services e, em seguida, selecione a amostra Calculadora Segura. Clique em Próximo.
3. Confirme se um servidor compatível com Java EE está selecionado na lista drop-down Servidor. Clique em Finalizar.

Quando clicar em Finalizar o assistente criará dois projetos:

* *SecureCalculatorApp* fornece um Web service chamado CalculatorWS que expõe uma operação de nome “add”.
* *SecureCalculatorClientApp* fornece um cliente, de nome CalculatorWSService, que invoca a operação “add” do Web service.

O serviço SecureCalculatorClientApp pode ser marcado com um ícone de erro porque o IDE não pode localizar o WSDL para o serviço CalculatorWS. O erro será resolvido depois que você implantar SecureCalculatorApp e limpar e construir o SecureCalculatorClientApp.

4. Clique duas vezes no web service CalculatorWS na pasta Web Services de SecureCalculatorApp para abrir o arquivo no editor e clique na guia Design na parte superior do editor para exibir o web service no designer visual.

*Observação:* Na seção Qualidade de Serviço na view design do serviço você pode ver que a opção Serviço Seguro está selecionada e que as outras duas opções não foram selecionadas. A seção Qualidade de Serviço no Visual Designer especifica quais componentes da Qualidade de Serviço estão _ativados_ para o Web service atual.

5. Clique em Editar Atributos do Web Service para abrir o Editor de Atributos do Web Service.
image::images/wsit-quality-dialog.png[title="Página Qualidade de Serviço no Editor de Atributos do WS"]

Na guia Qualidade de Serviço você pode ver que uma opção de Compatibilidade de Versão foi selecionada. Selecione a versão mais recente que corresponda à versão do Metro ou do .NET que você tem instalada.

Para ativar a lista drop-down de compatibilidade da versão, adicione a versão mais recente do Metro no classpath do projeto. Para adicionar a biblioteca mais recente do Metro, clique com o botão direito do mouse no nó do projeto na janela Projetos, abra as Propriedades do projeto, vá até a categoria Bibliotecas e procure e adicione a versão mais recente da biblioteca do Metro.

Observe que a opção Serviço Seguro é selecionada e que um mecanismo de segurança é selecionado na lista drop-down. O mecanismo de segurança especifica a abordagem usada para proteger o web service.

Nesta aplicação de amostra a Autenticação de Nome de Usuário com o mecanismo de segurança Chaves Simétrica é selecionada. Para obter uma descrição das opções e propriedades do mecanismo de segurança Autenticação do Nome de Usuário com Chaves Simétricas, consulte link:http://docs.oracle.com/cd/E19182-01/821-0015/gggsrv/index.html[+Autenticação do Nome de Usuário com Chaves Simétricas+]. Para obte uma descrição de outros mecanismos de segurança disponíveis. consulte link:http://docs.oracle.com/cd/E19182-01/820-0595/6ncatc2q5/index.html[+Configurando Mecanismos de Segurança+].

6. Expanda as seções Mensagem de Entrada e Mensagem de Saída na guia Qualidade de Serviço.
image::images/wsit-quality-dialog2.png[title="Página Qualidade de Serviço com o botão Partes da Mensagem ativado"]

O botão Partes da Mensagem é ativado para Mensagem de Entrada e Mensagem de Saída se você selecionar Autenticação do Nome de Usuário com Chaves Simétricas como o mecanismo de segurança.

*Observação:* a lista drop-down Token de Autenticação e as opções de Mensagem de Entrada não são ativadas para o mecanismo de segurança Autenticação de Nome de Usuário com Chaves Simétricas.

7. Clique no botão Partes da Mensagem na seção Mensagem de Entrada.
image::images/wsit-messageparts.png[title="Caixa de diálogo Partes da Mensagem"]

Na caixa de diálogo Partes da Mensagem você pode ver as opções de segurança de diferentes elementos. Você pode marcar uma caixa de seleção para ativar ou desativar as partes que devem ser assinadas, criptografadas e obrigatórias. Para cada elemento você pode especificar as seguintes opções:

* Selecione *Assinar* para especificar as partes ou os elementos de uma mensagem que requerem a proteção de integridade (assinatura digital).
* Selecione *Criptografar* para especificar as partes ou os elementos de uma mensagem que requerem confidencialidade (criptografia).
* Selecione *Exigir* para especificar um conjunto de partes e/ou elementos que uma mensagem deve conter.

Em seguida, verifique como a qualidade de serviço do cliente do Web service é configurada.

8. Na janeja Projetos, expanda o nó Referências de Web Service no projeto *SecureCalculatorClientApp*.
9. Clique com o botão direito do mouse no nó CalculatorWSService e escolha Editar Atributos do Web Service no menu pop-up para abrir a caixa de diálogo Atributos do Web Service. 
image::images/wsit-qos-wsservice.png[title="Caixa de diálogo de qualidade de serviço do cliente do Web service"]

Você pode ver que um usuário "wsitUser" e senha default existem. O usuário e a senha default foram criados no realm "arquivo".

Se você selecionar a opção Usar Defaults de Desenvolvimento na seção Segurança, o IDE importa certificados para o armazenamento de chaves e o truststore do GlassFish Server para que eles possam ser usados imediatamente para desenvolvimento.

*Importante: * Em um ambiente de produção, você provavelmente desejará fornecer seus próprios certificados e definições de usuário. Entretanto, em um ambiente de desenvolvimento, você poderá considerar esses defaults úteis.

Para obter uma descrição detalhada de como configurar a segurança para um cliente de web service, consulte o link:http://docs.oracle.com/cd/E19159-01/820-1072/6ncp48v3b/index.html[+Capítulo 7 Usando a Segurança de WSIT+] em link:http://docs.oracle.com/cd/E19159-01/820-1072/index.html[+O Tutorial de WSIT+].


=== Implantando e Testando o Exemplo de Calculadora Segura

1. Clique com o botão direito do mouse no nó do projeto de serviço e escolha Executar para implantar o web service.
2. Clique com o botão direito do mouse no nó do projeto do cliente do Web service e selecione Executar.

Quando executar o cliente, a aplicação é implantada e a interface do serviço é aberta no browser.

image::images/wsit-browser-secure1.png[title="Cliente de Web service segudo no browser"]
3. Digite um número em cada um dos campos e clique em Obter Resultado.

Ao clicar em Obter Resultado, a página exibirá uma mensagem informando que o cliente foi autenticado e exibirá o resultado da operação.

image::images/wsit-browser-secure2.png[title="Cliente de Web service segurno no browser mostrando resultados"]

Se uma mensagem de erro aparecer constatando que a autenticação falhou devido a um par usuário/senha inválido, ou existe um problema com o usuário default criado pelo IDE, ou existem credenciais não correspondentes definidas no cliente. Nesse caso, é necessário criar um par usuário/senha manualmente. Para obter instruções, consulte link:http://docs.oracle.com/cd/E19159-01/820-1072/6ncp48v3b/index.html[+Capítulo 7 Usando Segurança de WSIT+] em link:http://docs.oracle.com/cd/E19159-01/820-1072/index.html[+O Tutorial de WSIT+].

link:/about/contact_form.html?to=3&subject=Feedback:WSIT%20Advanced%20Interoperability%20in%20NetBeans%20IDE%206.0[+Enviar Feedback neste Tutorial+]



== Consulte Também

Para obter mais informações sobre como usar o NetBeans IDE para desenvolver Web Services, consulte os seguintes recursos:

* link:client.html[+Desenvolvendo Clientes de Web Service JAX-WS+]
* link:jax-ws.html[+Introdução aos Web Services JAX-WS+]
* link:rest.html[+Introdução ao RESTful Web Services+]
* link:flower_overview.html[+Aplicação de Web service passando dados binários+]
* link:../../74/websvc/jaxb_pt_BR.html[+Vinculando WSDL a Java com JAXB+]
* link:../../trails/web.html[+Trilha do Aprendizado de Web services+]

Para enviar comentários e sugestões, obter suporte e se manter informado sobre os mais recentes desenvolvimentos das funcionalidades de desenvolvimento Java EE do NetBeans IDE, link:../../../community/lists/top.html[+inscreva-se na lista de notícias nbj2ee@netbeans.org+].

