blob: 847cc62e15e506589e32f969a3e156ac1b31cd11 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><link rel="stylesheet" href="../../../print.css" type="text/css" media="print">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Introdução aos Web Services JAX-WS - Tutorial do NetBeans IDE</title>
<meta name="KEYWORDS" content="NETBEANS, TUTORIAL, GUIDE, USER, DOCUMENTATION, WEB SERVICE, WEB SERVICES, SOAP, CLIENT, JAX-WS">
<meta name="description"
content="This tutorial shows how to use NetBeans IDE 7.0 or later to develop a JAX-WS web service
and consume it in a Java class in a Java SE application, or in
a servlet or JSP page">
<link rel="stylesheet" href="../../../netbeans.css"></head>
<body>
<h1>Introdução aos Web services JAX-WS</h1>
<p><a href="http://www.jcp.org/en/jsr/detail?id=224" target="_blank">Java API para Web services XML (JAX-WS), JSR 224</a> é uma parte importante das plataforma Java EE. Uma sequência da release da API Java para RPC 1.1 (JAX-RPC) com base em XML, o JAX-WS simplifica a tarefa de desenvolvimento de Web services utilizando a tecnologia Java. Ela aborda alguns dos problemas em JAX-RPC 1.1, fornecendo suporte a vários protocolos, como SOAP 1.1, SOAP 1.2, XML, e fornecendo um recurso para dar suporte a protocolos adicionais junto com HTTP. O JAX-WS usa JAXB 2.0 para vinculação de dados e dá suporte a personalizações para controlar interfaces de ponto final de serviço geradas. Com suporte a anotações, o JAX-WS simplifica o desenvolvimento do Web service e reduz o tamanho de arquivos JAR do run-time.</p>
<p>Este documento demonstra os conceitos básicos sobre o uso do IDE para desenvolver um Web service JAX-WS. Após criar o Web service, você escreve três clientes de Web service diferentes que usam Web service em uma rede, denominado "consumo" de um Web service. Os três clientes são uma classe Java em uma aplicação Java SE, um servlet e uma página JSP em uma aplicação Web. Um tutorial mais avançado que se concentra em clientes é <a href="./client.html">Desenvolvendo Clientes de Web Service JAX-WS</a>.</p>
<p><b>Conteúdo</b></p>
<img alt="O conteúdo desta página se aplica ao NetBeans IDE 7.2, 7.3, 7.4 e 8.0" class="stamp" src="../../../images_www/articles/73/netbeans-stamp-80-74-73.png" title="O conteúdo desta página se aplica ao NetBeans IDE 7.2, 7.3, 7.4 e 8.0">
<ul><li><a href="#Exercise_1"> Criando um Web Service</a></li>
<li><a href="#Exercise_2"> Criando o Web Service</a></li>
<li><a href="#Exercise_2_1"> Implantando e Testando o Web Service</a></li>
<li><a href="#samples">Amostras</a></li>
<li>
Consumindo o Web Service em
<ul><li><a href="#Exercise_3_1">uma classe Java em uma Aplicação Java SE</a></li>
<li><a href="#Exercise_3_2">um servlet em uma aplicação Web</a></li>
<li><a href="#Exercise_3_3">uma página JSP em uma aplicação Web</a></li>
</ul>
</ul>
<p><b>Para seguir este tutorial, são necessários os recursos e o software a seguir.</b></p>
<table>
<tbody>
<tr>
<th class="tblheader" scope="col">Software ou Recurso</th>
<th class="tblheader" scope="col">Versão Necessária</th>
</tr>
<tr>
<td class="tbltd1"><a href="https://netbeans.org/downloads/index.html" target="_blank">NetBeans IDE</a></td>
<td class="tbltd1">Pacote de download do Java EE</td>
</tr>
<tr>
<td class="tbltd1"><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank">JDK (Java Development Kit)</a></td>
<td class="tbltd1">JDK 7 ou JDK 8<br></td>
</tr>
<tr>
<td class="tbltd1">Servidor de aplicações ou Web compatível com Java EE</td>
<td class="tbltd1">
GlassFish Server Open Source Edition <br> Oracle WebLogic Server</td>
</tr>
</tbody>
</table>
<p class="notes"><strong>Observação: </strong>o GlassFish Server pode ser instalado com a distribuição de Java EE do NetBeans IDE. Como alternativa, você pode visitar a <a href="https://glassfish.java.net/download.html">página de downloads do GlassFish Server</a> ou a <a href="http://tomcat.apache.org/download-60.cgi" target="_blank">página de downloads do Apache Tomcat</a>.</p>
<p class="alert"><strong>Importante: </strong>os projetos Java EE requerem GlassFish Server ou Oracle WebLogic Server 12c.
</p>
<p class="alert">O servidor web de Tomcat incorporado não é um servidor web totalmente compatível com Java EE. No entanto, o servidor web Tomcat 7.x pode ser configurado para suportar alguma funcionalidade de Java EE. Consulte o <a href="http://openejb.apache.org/" target="_blank">Projeto Apache para EE</a> para obter informações sobre como adicionar suporte ao Java EE para Tomcat.</p>
<!-- ===================================================================================== -->
<h2><a name="Exercise_1"></a>
<!--Exercise 1: -->
Criando um Web Service</h2>
<p>O objetivo deste exercício é criar um projeto apropriado para o contêiner de implantação que você decidir utilizar. Uma vez criado o projeto, você irá criar nele um Web service.</p>
<div class="indent">
<h3 class="tutorial">Escolhendo um Contêiner</h3>
<p>Você pode implantar o Web service em um contêiner Web ou em um contêiner EJB. Isso depende das suas escolhas de implementação. Se estiver criando uma aplicação Java EE, use um contêiner Web, pois você pode colocar EJBs diretamente em uma aplicação Web. Por exemplo, se você planeja implantar no Servidor Web Tomcat, que tem somente um contêiner Web, crie uma aplicação Web, não um módulo EJB.</p>
<ol>
<li> Selecione Arquivo > Novo Projeto (Ctrl-Shift-N no Linux e no Windows, ⌘-Shift-N no MacOS). Selecione Aplicação Web na categoria Java Web ou Módulo EJB na categoria Java EE.
<p class="notes">Você pode criar um Web service JAX-WS em um projeto Maven. Selecione Arquivo > Novo Projeto (Ctrl-Shift-N no Linux e no Windows, ⌘-Shift-N no MacOS) e o módulo Aplicação Web Maven ou Maven EJB na categoria Maven. Se você nunca tiver usado Maven com NetBeans antes, consulte <a href="http://wiki.netbeans.org/MavenBestPractices" target="_blank">Melhores Práticas para o Maven</a>.
</li>
<li>Nomeie o projeto <tt>CalculatorWSApplication</tt>. Selecione uma localização para o projeto. Clique em Próximo.
<li>Selecione o servidor e a versão do Java EE e clique em Finalizar.
<p class="notes">Para usar o Oracle WebLogic server, <a href="../web/jsf-jpa-weblogic.html#01">registre o servidor no IDE</a>. Além disso, se você estiver usando o WebLogic server, observe a screencast em <a href="../javaee/weblogic-javaee-m1-screencast.html">Implantando uma Aplicação Web para Oracle WebLogic</a>.</p> </li>
</ol>
<h3 class="tutorial">Criando um Web Service com base em uma Classe Java</h3>
<ol>
<li>Clique com o botão direito do mouse no nó <tt>CalculatorWSApplication</tt> e selecione Novo > Web Service.</li>
<li>Chame o Web service de <tt>CalculatorWS</tt> e digite <tt>org.me.calculator</tt> no Pacote. Deixe Criar Web Service do Início selecionado.</li>
<li>Se você estiver criando um projeto Java EE em GlassFish ou WebLogic, selecione Implementar Web Service como um Bean de Sessão Sem Estado. <br> <img alt="Assistente Novo Web Service para EE, com opções do bean" class="margin-around b-all" height="365" src="../../../images_www/articles/72/websvc/jax-ws/generate-ws-ee6.png" width="528"></li>
<li>Clique em Finalizar. A janela Projetos exibirá a estrutura do novo Web service e o código-fonte será mostrado na área do editor.<br>
</li>
</ol>
</div>
<!-- ===================================================================================== -->
<h2><a name="Exercise_2"></a>
<!--Exercise 2: -->
Adicionando uma Operação ao Web service</h2>
<p>O objetivo deste exercício é adicionar ao Web service uma operação que adiciona dois números recebidos de um cliente. O NetBeans IDE oferece uma caixa de diálogo para adicionar uma operação a um Web service. Você pode abrir essa caixa de diálogo no visual designer para Web service ou no menu de contexto do Web service. </p>
<p class="alert"><b>Advertência:</b> o visual designer não está disponível em projetos Maven.</p>
<p><strong>Para adicionar uma operação ao Web service:</strong></p>
<ol>
<li>Ou:<ul>
<li>Altere a view do Design no editor. <br> <img alt="View do Design do editor do Web service" class="margin-around b-all" height="454" src="../../../images_www/articles/72/websvc/jax-ws/design-view.png" width="436"> </li></ul>
<p>Ou:</p>
<ul>
<li>Localize o nó do Web service na janela Projetos. Clique com o botão direito do mouse no nó. Aparecerá um menu de contexto.<br> <img alt="Menu de contexto do nó do Web service com o item Adicionar Operação realçado" class="margin-around b-right b-bottom" height="274" src="../../../images_www/articles/72/websvc/jax-ws/add-op-cx-menu-item.png" width="259"></li></ul></li>
<li>Clique em Adicionar Operação no designer visual ou no menu de contexto. A caixa de diálogo Adicionar Operação será aberta.</li>
<li>Na parte superior da caixa de diálogo Adicionar Operação, digite <tt>add</tt> em Nome e digite <tt>int</tt> na lista drop-down Tipo de Retorno.</li>
<li>Na parte inferior da caixa de diálogo Adicionar Operação, clique em Adicionar e crie um parâmetro de tipo <tt>int</tt> chamado <tt>i</tt>.</li>
<li>Clique novamente em Adicionar e crie um parâmetro de tipo <tt>int</tt> chamado de <tt>j</tt>.
<p>Agora você deverá ver o seguinte:</p>
<br><img alt="Caixa de diálogo Adicionar Operação" class="margin-around b-all" src="../../../images_www/articles/72/websvc/jax-ws/jaxws-60-add-operation.png"></li>
<li>Clique em OK na parte inferior da caixa de diálogo Adicionar Operação. Você retornará ao editor.</li>
<li>Remova a operação <tt>hello</tt> default deletando o método <tt>hello()</tt> no código-fonte ou selecionando a operação <tt>hello</tt> no visual designer e clicando em Remover Operação.
<p>O visual designer agora exibe o seguinte:</p>
<br><img alt="Visual designer do Web service que mostra operação adicionada" class="margin-around b-all" height="478" src="../../../images_www/articles/72/websvc/jax-ws/design-view-with-op.png" title="Visual designer do Web service que mostra operação adicionada" width="449"></li>
<li>Clique em Código-Fonte e exiba o código que você gerou nas etapas anteriores. Será diferente se você tiver criado o serviço como um bean sem estado Java EE6 ou não. Você pode perceber as diferenças das telas abaixo? (Um serviço Java EE 6 ou Java EE 7 que não é implementado como bean sem estado parece um serviço Java EE 5.)<br> <img alt="Resultado: EE5" class="margin-around b-top b-left" height="441" src="../../../images_www/articles/72/websvc/jax-ws/jaxws-60-source.png" width="412"> <img alt="Resultado: bean sem estado EE 6" class="margin-around b-all" height="469" src="../../../images_www/articles/72/websvc/jax-ws/stateless-ejb-code1.png" width="389">
<p class="notes"><strong>Observação.</strong> No NetBeans IDE 7.3 e 7.4 você verá que na anotação <tt>@WebService</tt> gerada, o nome do serviço é especificado explicitamente:<br> <tt>@WebService(serviceName = "CalculatorWS")</tt>.</p>
</li>
<li>No editor, estenda a operação de esqueleto <tt>add</tt> para o seguinte (alterações em negrito):
<pre class="examplecode"> @WebMethod
public int add(@WebParam(name = "i") int i, @WebParam(name = "j") int j) {
<b>int k = i + j;</b>
return <b>k</b>;
}</pre></li>
</ol>
<p>Como você pode ver no código acima, o Web service simplesmente recebe dois números e retorna a soma deles. Na próxima seção, você usa o IDE para testar o Web service.
<!-- ======================================================================================== -->
<h2 class="tutorial"><a name="Exercise_2_1"></a>Implantando e Testando o Web service</h2>
<p>Depois de implantado um Web service em um servidor, você poderá usar o IDE para abrir o cliente de teste do servidor, caso ele tenha um cliente de teste. Os servidores GlassFish e WebLogic oferecem clientes de teste. </p>
<p>Se você estiver usando o servidor Web Tomcat, não haverá cliente de teste. Você só poderá executar o projeto e ver se a página de web services do Tomcat é aberta. Nesse caso, antes de executar o projeto, é preciso tornar o web service o ponto de entrada da aplicação. Para tornar o web service o ponto de entrada da aplicação, clique com o botão direito do mouse no nó do projeto CalculatorWSApplication e selecione Propriedades. Abra as propriedades de Executar e digite <tt>/CalculatorWS</tt> no campo URL Relativo. Clique em OK. Para executar o projeto, clique com o botão direito do mouse no nó do projeto novamente e selecione Executar.</p>
<p><b>Para testar a implantação bem-sucedida em um servidor GlassFish Server ou WebLogic: </b></p>
<ol>
<li>Clique com o botão direito do mouse no projeto e selecione Implantar. O IDE inicia o servidor de aplicações, constrói a aplicação e a implanta no servidor. Você pode acompanhar o progresso dessas operações no CalculatorWSApplication (run-deploy) e nas guias do GlassFish Server ou Tomcat na view Saída.</li>
<li>Na guia Projetos do IDE, expanda o nó Web Services do projeto CalculatorWSApplication. Clique com o botão direito do mouse no nó CalculatorWS e selecione Testar Web Service. <br> <img alt="Guia Projetos que mostra a opção de menu de contexto Testar Web Service" class="margin-around b-all" src="../../../images_www/articles/72/websvc/jax-ws/jax-ws-testws.png">
<p>O IDE abrirá a página de teste em seu browser, se você tiver implantado uma aplicação Web no GlassFish Server. Para o servidor Web Tomcat e a implantação de módulos EJB, a situação é diferente:</p>
<ul>
<li>Se você tiver implantado no GlassFish Server, digite dois números na página de teste, como mostrado abaixo: <br><img alt="Página de teste do Web service quando o serviço foi implantado com êxito no GlassFish Server" class="margin-around b-all" height="283" src="../../../images_www/articles/72/websvc/jax-ws/jax-ws-tester.png" width="497">
<p>A soma dos dois números é exibida:</p>
<br><img alt="Página Web que mostra o resultado do teste de um Web service" class="margin-around b-all" height="345" src="../../../images_www/articles/72/websvc/jax-ws/jax-ws-tester2.png" width="248"></li>
</ul>
</li>
</ol>
<!-- ======================================================================================== -->
<h2><a name="samples">Amostras</a></h2>
<p>Você pode abrir uma versão completa do bean sem estado Java EE do serviço Calculadora selecionando Arquivo > Novo Projeto (Ctrl-Shift-N no Linux e no Windows, ⌘-Shift-N no MacOS) e navegar até Amostras > Web Services Java > Calculadora (EE6).</p>
<p>Um Serviço de Calculadora Maven e um Cliente de Calculadora Maven estão disponíveis em Amostras > Maven.</p>
<h2 class="tutorial"><a name="Exercise_3"></a> Consumindo o Web Service</h2>
<p class="tutorial">Agora que você implantou o Web service, precisará criar um cliente para utilizar o método <tt>add</tt> do Web service. Aqui, você cria três clientes — uma classe Java em uma aplicação Java SE, um servlet e uma página JSP em uma aplicação Web.</p>
<p class="notes"><b>Observação:</b> um tutorial mais avançado que se concentra nos clientes é <a href="../../../kb/docs/websvc/client.html">Desenvolvendo Clientes de Web Service JAX-WS</a>.</p>
<div class="indent">
<h3 class="tutorial"><a name="Exercise_3_1"></a>Cliente 1: Classe Java na Aplicação Java SE</h3>
<p>Nesta seção, você cria uma aplicação Java padrão. O assistente usado para criar a aplicação também criará uma classe Java. Em seguida, você usa as ferramentas do IDE para criar um cliente e consumir o Web service que criou no início deste tutorial.</p>
<ol>
<li>Selecione Arquivo > Novo Projeto (Ctrl-Shift-N no Linux e no Windows, ⌘-Shift-N no MacOS). Selecione Aplicação Java na categoria Java. Nomeie o projeto <tt>CalculatorWS_Client_Application</tt>. Deixe a opção Criar Classe Principal selecionada e aceite todas as outras definições default. Clique em Finalizar.</li>
<li>Clique com o botão direito do mouse no nó <tt>CalculatorWS_Client_Application</tt> e selecione Novo > Cliente de Web Service. O assistente de Novo Cliente de Web Service será aberto. </li>
<li>Selecione Projeto como o código-fonte WSDL. Clique em Procurar. Procure o Web service CalculatorWS no projeto CalculatorWSApplication. Depois de ter selecionado o Web service, clique em OK.<br> <img alt="Caixa de diálogo Web Services que mostra o serviço CalculatorWS" class="margin-around b-all" src="../../../images_www/articles/80/websvc/jax-ws/browse-ws.png"></li>
<li>Não selecione um nome de pacote. Deixe este campo vazio.<br> <img alt="Assistente Novo Cliente de Web Service que mostra o nome do pacote" class="margin-around b-all" src="../../../images_www/articles/80/websvc/jax-ws/javaclient-pkg.png"></li>
<li>Deixe as outras definições como default e clique em Finalizar.
<p>A janela Projetos exibirá o novo cliente de Web service, com um nó para o método <tt>add</tt> que você criou:</p>
<br><img alt="Novo cliente Web service na aplicação Java exibido na janela Projetos" class="margin-around b-right b-top" height="294" src="../../../images_www/articles/72/websvc/jax-ws/ws-ref-in-client-project.png" width="311"> </li>
<li>Clique duas vezes na classe principal para abri-la no Editor de Código-Fonte. Arraste o nó <tt>adicionar</tt> abaixo do método <tt>main()</tt>.<br><img alt="Arrastando e soltando a operação de adição no corpo da classe principal" class="margin-around b-all" height="186" src="../../../images_www/articles/72/websvc/jax-ws/dnd-add.png" width="527">
<p> Agora você deverá ver o seguinte:</p>
<pre class="examplecode">public static void main(String[] args) {
// TODO code application logic here
}
private static int add(int i, int j) {
org.me.calculator.CalculatorWS_Service service = new org.me.calculator.CalculatorWS_Service();
org.me.calculator.CalculatorWS port = service.getCalculatorWSPort();
return port.add(i, j);
}</pre>
<p><b>Observação:</b> como alternativa, em vez de arrastar o nó <tt>adicionar</tt> , você pode clicar com o botão direito do mouse no editor e, em seguida, selecionar Inserir Código > Operação de Chamada a Web service. </li>
<li>No corpo do método <tt>main()</tt>, substitua o comentário TODO com o código que inicializa os valores de <tt>i</tt> e <tt>j</tt>, chama <tt>add()</tt> e mostra o resultado.
<pre class="examplecode">public static void main(String[] args) {<br> int i = 3;<br> int j = 4;<br> int result = add(i, j);<br> System.out.println(&quot;Result = &quot; + result);
}</pre></li>
<li>Circunde o código do método <tt>main()</tt> com um bloco try/catch que imprime uma exceção.
<pre class="examplecode">public static void main(String[] args) {<br> try {<br> int i = 3;<br> int j = 4;<br> int result = add(i, j);<br> System.out.println(&quot;Result = &quot; + result);<br> } catch (Exception ex) {<br> System.out.println(&quot;Exception: &quot; + ex);<br> }
}</pre>
</li>
<li>Clique com o botão direito do mouse no nó do projeto e selecione Executar.
<p>A janela de Saída agora mostra a soma:</p>
<pre class="examplecode"> compile:
run:
Result = 7
BUILD SUCCESSFUL (total time: 1 second)</pre>
</li>
</ol>
<h3><a name="Exercise_3_2"></a>Cliente 2: Servlet na Aplicação Web</h3>
<p>Nesta seção, você cria uma nova aplicação Web e, depois disso, cria um servlet. Em seguida, usa o servlet para consumir o Web service que criou no início deste tutorial.
<ol>
<li> Selecione Arquivo > Novo Projeto (Ctrl-Shift-N no Linux e no Windows, ⌘-Shift-N no MacOS). Na categoria Java Web, selecione Aplicação Web. Nomeie o projeto <tt>CalculatorWSServletClient</tt>. Clique em Próximo e, em seguida, em Finalizar.</li>
<li>Clique com o botão direito do mouse no nó <tt>CalculatorWSServletClient</tt> e selecione Novo > Cliente de Web Service.
<p>O assistente de Novo Cliente de Web Service será aberto.</p>
</li>
<li>Selecione Projeto como origem WSDL e clique em Procurar para abrir a caixa de diálogo Procurar Web Services.</li>
<li>Selecione o web service CalculatorWS no projeto CalculatorWSApplication. Clique em OK para fechar a caixa de diálogo Procurar Web Services.<br> <img alt="Caixa de diálogo Web Services que mostra o serviço CalculatorWS" class="margin-around b-all" src="../../../images_www/articles/80/websvc/jax-ws/browse-ws.png"></li>
<li>Confirme se o nome do pacote está vazio no assistente de Novo Cliente de Web Service e deixe as outras definições com o valor padrão. Clique em Finalizar.
<p>O nó Referências de Web Service na janela Projetos exibe a estrutura do cliente recém-criado, que inclui a operação <tt>add</tt> que você criou anteriormente neste tutorial.</p>
</li>
<li>Clique com o botão direito do mouse no nó do projeto <tt>CalculatorWSServletClient</tt> e selecione Novo > Servlet. Chame o servlet de <tt>ClientServlet</tt> e coloque-o em um pacote chamado <tt>org.me.calculator.client</tt>. Clique em Finalizar.
<li>Para tornar o servlet o ponto de entrada da aplicação, clique com o botão direito do mouse no nó do projeto CalculatorWSServletClient e selecione Propriedades. Abra as propriedades de Executar e digite <tt>/ClientServlet</tt> no campo URL Relativo. Clique em OK.
<li>Se houver ícones de erro em <tt>ClientServlet.java</tt>, clique com o botão direito do mouse no nó do projeto e selecione Limpar e Construir.
<li>No método <tt>processRequest()</tt>, adicione algumas linhas vazias depois desta linha:
<pre class="examplecode"> out.println("&lt;h1&gt;Servlet ClientServlet at " + request.getContextPath () + "&lt;/h1&gt;");</pre>
</li>
<li>No Editor de Código-Fonte, arraste a operação <tt>adicionar</tt> em qualquer lugar do corpo da classe <tt>ClientServlet</tt>. O método <tt>add()</tt> aparecerá ao final do código da classe.
<p class="notes"><b>Observação:</b> como alternativa, em vez de arrastar o nó <tt>adicionar</tt> , você pode clicar com o botão direito do mouse no editor e, em seguida, selecionar Inserir Código > Operação de Chamada a Web service.</p>
<pre class="examplecode">private int add(int i, int j) {<br> org.me.calculator.CalculatorWS port = service.getCalculatorWSPort();<br> return port.add(i, j);
}</pre>
</li>
<li>Adicione o código que inicializa os valores de <tt>i</tt> e <tt>j</tt>, chama <tt>add()</tt> e imprime o resultado. O código adicionado está em <b>negrito</b>:
<pre class="examplecode">protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
out.println("&lt;html&gt;");
out.println("&lt;head&gt;");
out.println("&lt;title&gt;Servlet ClientServlet&lt;/title&gt;");
out.println("&lt;/head&gt;");
out.println("&lt;body&gt;");
out.println("&lt;h1&gt;Servlet ClientServlet at " + request.getContextPath () + "&lt;/h1&gt;");
<strong> int i = 3;<br> int j = 4;<br> int result = add(i, j);<br> out.println(&quot;Result = &quot; + result);</strong>
out.println("&lt;/body&gt;");
out.println("&lt;/html&gt;");
} finally { <br> out.close();<br> }<br>}</pre>
</li>
<li>Circunde o código adicionado com um bloco try/catch que imprime uma exceção.
<pre class="examplecode">protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
out.println("&lt;html&gt;");
out.println("&lt;head&gt;");
out.println("&lt;title&gt;Servlet ClientServlet&lt;/title&gt;");
out.println("&lt;/head&gt;");
out.println("&lt;body&gt;");
out.println("&lt;h1&gt;Servlet ClientServlet at " + request.getContextPath () + "&lt;/h1&gt;");
<strong>try {</strong>
int i = 3;<br> int j = 4;<br> int result = add(i, j);<br> out.println(&quot;Result = &quot; + result);
<strong>} catch (Exception ex) {
out.println(&quot;Exception: &quot; + ex);
}</strong>
out.println("&lt;/body&gt;");
out.println("&lt;/html&gt;");
} finally { <br> out.close();<br> }<br>}</pre>
</li>
<li>Clique com o botão direito do mouse no nó do projeto e selecione Executar.
<p>O servidor será iniciado, a aplicação será construída e implantada e o browser será aberto, exibindo o resultado do cálculo, como mostrado abaixo: <br><img alt="Novo cliente de Web service no servlet exibido na janela Projetos" class="margin-around b-all" src="../../../images_www/articles/72/websvc/jax-ws/jaxws-60-webclient.png"> </li>
</ol>
<h3><a name="Exercise_3_3"></a>Cliente 3: Página JSP na Aplicação Web</h3>
<p>Nesta seção, você cria uma nova aplicação Web e, em seguida, consome o Web service na página JSP default que o assistente Aplicação Web cria.</p>
<p class="notes"><b>Observação:</b> se você quiser executar um cliente de aplicação Web JSP em Oracle WebLogic, consulte <a href="../web/jsf-jpa-weblogic.html">Executando uma Aplicação Java Server Faces 2.0 em WebLogic</a>.</p>
<ol>
<li> Selecione Arquivo > Novo Projeto (Ctrl-Shift-N no Linux e no Windows, ⌘-Shift-N no MacOS). Na categoria Java Web, selecione Aplicação Web. Nomeie o projeto <tt>CalculatorWSJSPClient</tt>. Clique em Próximo e, em seguida, em Finalizar.</li>
<li>Expanda o nó Páginas Web sob o nó do projeto e exclua <tt>index.html</tt>.</li>
<li>Clique com o botão direito do mouse no nó <tt>Páginas Web</tt> e escolha Novo > JSP no menu pop-up.
<p>Se JSP não estiver disponível no menu pop-up, escolha Novo > Outro e selecione JSP na categoria Web do assistente de Novo Arquivo.</p></li>
<li>Digite <strong>index</strong> como nome do arquivo JSP no assistente de Novo Arquivo. Clique em Finalizar.</li>
<li>Clique com o botão direito do mouse no nó <tt>CalculatorWSJSPClient</tt> e selecione Novo > Cliente de Web service.</li>
<li>Selecione Projeto como o código-fonte WSDL. Clique em Procurar. Procure o Web service CalculatorWS no projeto CalculatorWSApplication. Depois de ter selecionado o Web service, clique em OK.<br> <img alt="Caixa de diálogo Web Services que mostra o serviço CalculatorWS" class="margin-around b-all" src="../../../images_www/articles/80/websvc/jax-ws/browse-ws.png"></li>
<li>Não selecione um nome de pacote. Deixe este campo vazio.</li>
<li>Deixe as outras definições como default e clique em Finalizar.
<p>A janela Projetos exibe o novo cliente de web service, como mostrado abaixo:</p>
<img alt="Novo cliente de Web service no servlet exibido na janela Projetos" class="margin-around b-all" src="../../../images_www/articles/72/websvc/jax-ws/ws-ref-in-jsp-client.png"></li>
<li>No nó Referências de Web Services, expanda o nó que representa o Web service. A operação <tt>adicionar</tt>, que você chamará do cliente, agora está exposta.</li>
<li>Arraste a operação <tt>adicionar</tt> para a página <tt>index.jsp</tt> do cliente e solte-a abaixo das tags H1. O código para chamar a operação de serviço agora é gerado na página <tt>index.jsp</tt>, como você pode ver aqui:
<pre class="examplecode">&lt;%
try {
org.me.calculator.CalculatorWSService service = new org.me.calculator.CalculatorWSService();
org.me.calculator.CalculatorWS port = service.getCalculatorWSPort();
// TODO initialize WS operation arguments here
int i = 0;
int j = 0;
// TODO process result here
int result = port.add(i, j);
out.println("Result = "+result);
} catch (Exception ex) {
// TODO handle custom exceptions here
}
%&gt;</pre>
<p>Altere o valor de <tt>i</tt> e <tt>j</tt> de 0 por outros inteiros, como 3 e 4. Substitua a linha TODO comentada no bloco catch por <tt>out.println("exception" + ex);</tt>.</p>
</li>
<li>Clique com o botão direito do mouse no nó do projeto e selecione Executar.
<p>O servidor será iniciado, caso já não esteja em execução. A aplicação será construída e implantada e o browser será aberto, exibindo o resultado do cálculo:</p>
<img alt="Página JSP que mostra o resultado" class="margin-around b-all" src="../../../images_www/articles/80/websvc/jax-ws/jax-ws-project-jsp-result.png"></li>
</ol>
</div>
<br>
<div class="feedback-box" ><a href="/about/contact_form.html?to=3&amp;subject=Feedback:%20JAX-WS%20Services%20in%20NetBeans%20IDE">Enviar Feedback neste Tutorial</a></div>
<br style="clear:both;">
<!-- ======================================================================================= -->
<h2><a name="seealso"></a>Consulte Também</h2>
<p>Para obter mais informações sobre o uso do NetBeans IDE para desenvolver aplicações Java EE, consulte os seguintes recursos:
</p>
<ul>
<li><a href="./client.html">Desenvolvendo Clientes de Web Service JAX-WS</a></li>
<li><a href="./rest.html">Introdução ao RESTful Web Services</a></li>
<li><a href="./wsit.html">Interoperabilidade Avançada de Web Service</a></li>
<li><a href="../../../kb/trails/web.html">Trilha do Aprendizado de Web services</a></li>
</ul>
<p>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, <a href="../../../community/lists/top.html">inscreva-se na lista de notícias nbj2ee@netbeans.org</a>.</p>
</body>