<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Os Lunáticos &#187; Java</title>
	<atom:link href="http://oslunaticos.com.br/category/ti/desenvolvimento/java-desenvolvimento-ti/feed/" rel="self" type="application/rss+xml" />
	<link>http://oslunaticos.com.br</link>
	<description>TI é aqui!</description>
	<lastBuildDate>Mon, 06 Feb 2012 21:07:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Processing no NetBeans</title>
		<link>http://oslunaticos.com.br/2012/02/processing-no-netbeans/</link>
		<comments>http://oslunaticos.com.br/2012/02/processing-no-netbeans/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 21:07:56 +0000</pubDate>
		<dc:creator>Eduardo</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[NetBeans]]></category>
		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://oslunaticos.com.br/?p=1744</guid>
		<description><![CDATA[Processing? Processing é uma linguagem de programação de código aberto e um ambiente de desenvolvimento integrado (IDE), construído para as artes eletrônicas e comunidades de design visual com o objetivo de ensinar noções básicas de programação de computador em um contexto visual e para servir como base para protótipos eletrônicos. O projeto foi iniciado em [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="Processing" src="http://code.google.com/p/processing/logo" alt="" width="55" height="55" /></p>
<h6>Processing?</h6>
<blockquote>
<p style="text-align: justify;">Processing é uma linguagem de programação de código aberto e um ambiente de desenvolvimento integrado (IDE), construído para as artes eletrônicas e comunidades de design visual com o objetivo de ensinar noções básicas de programação de computador em um contexto visual e para servir como base para protótipos eletrônicos. O projeto foi iniciado em 2001 por Casey Reas e Ben Fry, ambos ex-membros do Grupo de Computação do MIT Media Lab. Um dos objetivos declarados do Processing é atuar como uma ferramenta para não-programadores, através da satisfação imediata de um retorno visual. Processing baseia-se na linguagem de programação Java, mas utiliza uma sintaxe simplificada e um padrão de programação baseado em gráficos.</p>
</blockquote>
<p>&nbsp;</p>
<h6>Ambiente</h6>
<p>O ambiente utilizado neste tutorial é Windows 7, NetBeans 7.1, JDK 1.6.0_30 e Processing 1.5.1.</p>
<p><span id="more-1744"></span></p>
<h6>Iniciando</h6>
<p>Considerando que o NetBeans e o JDK já estejam instalados, é necessário ir no site do Processing e realizar o download da versão sem o JDK &#8211;  <a href="http://processing.org/download/">http://processing.org/download/</a>. Após baixar o arquivo <em>processing-1.5.1-windows-expert.zip</em>, descompacte-o e mova a pasta <em>processing-1.5.1</em> para dentro de <em>C:\Arquivos de Programas</em>.</p>
<p>Neste primeiro contato o Processing já está pronto para trabalhar, agora é só configurar o NetBeans.</p>
<p>&nbsp;</p>
<h6>Agora no Netbeans</h6>
<p>Para continuar abra o NetBeans e clique em <em>Projetos</em> -&gt; <em>Bibliotecas</em>.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela01.jpg"><img class="aligncenter size-medium wp-image-1746" title="tela01" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela01-300x151.jpg" alt="" width="300" height="151" /></a></p>
<p>&nbsp;</p>
<p>Na tela de Bibliotecas, clique em <em>Nova Biblioteca&#8230;</em></p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela02.jpg"><img class="aligncenter size-medium wp-image-1747" title="tela02" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela02-300x229.jpg" alt="" width="300" height="229" /></a></p>
<p>&nbsp;</p>
<p>Em Nova Biblioteca, digite <em>Processing 1.5.1</em> em <em>Nome da biblioteca</em> e clique em <em>OK</em>.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela03.jpg"><img class="aligncenter size-medium wp-image-1748" title="tela03" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela03-300x149.jpg" alt="" width="300" height="149" /></a></p>
<p>&nbsp;</p>
<p>Após confirmar, clique em <em>Adicionar JAR/pasta&#8230; </em>Será exibida uma tela para localização dos arquivos. Procure <em>C:\Arquivos de Programas\processing-1.5.1\lib</em>, selecione os arquivos e clique em <em>Adicionar JAR/pasta</em>.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela04.jpg"><img class="aligncenter size-medium wp-image-1751" title="tela04" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela04-300x190.jpg" alt="" width="300" height="190" /></a></p>
<p>&nbsp;</p>
<p>Será exibida a tela com as informações da nova biblioteca.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela05.jpg"><img class="aligncenter size-medium wp-image-1752" title="tela05" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela05-300x229.jpg" alt="" width="300" height="229" /></a></p>
<p>&nbsp;</p>
<p>Neste momento a biblioteca está configurada e pronta para ser adicionada ao projeto.</p>
<p>&nbsp;</p>
<h6>Novo Projeto</h6>
<p>Agora será necessário iniciar um novo projeto. Clique em <em>Arquivo</em> -&gt; <em>Novo Projeto</em>. Na tela de Novo Projeto, selecione em <em>Categorias: Java</em> e <em>Projetos: Aplicativo Java</em>.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela06.jpg"><img class="aligncenter size-medium wp-image-1753" title="tela06" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela06-300x206.jpg" alt="" width="300" height="206" /></a></p>
<p>&nbsp;</p>
<p>Na tela de Novo Aplicativo Java, insira o nome do projeto: <em>TestProcessing</em>, verifique as demais opções selecionadas e clique em <em>Finalizar</em>.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela07.jpg"><img class="aligncenter size-medium wp-image-1754" title="tela07" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela07-300x206.jpg" alt="" width="300" height="206" /></a></p>
<p>&nbsp;</p>
<p>Após o novo projeto carregado, abra a árvore do projeto, clique em <em>Bibliotecas</em>, depois em <em>Adicionar biblioteca&#8230;</em></p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela08.jpg"><img class="aligncenter size-medium wp-image-1755" title="tela08" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela08-257x300.jpg" alt="" width="257" height="300" /></a></p>
<p>&nbsp;</p>
<p>Na tela de adicionar biblioteca, clique em <em>Importar</em>.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela09.jpg"><img class="aligncenter size-medium wp-image-1756" title="tela09" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela09-284x300.jpg" alt="" width="284" height="300" /></a></p>
<p>&nbsp;</p>
<p>Selecione a biblioteca que foi criada (Processing 1.5.1) e clique em <em>Importar biblioteca</em>.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela10.jpg"><img class="aligncenter size-medium wp-image-1757" title="tela10" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela10-219x300.jpg" alt="" width="219" height="300" /></a></p>
<p>&nbsp;</p>
<p>Novamente de volta a de Adicionar biblioteca selecione <em>Processing 1.5.1</em> e clique em <em>Adicionar biblioteca</em>.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela11.jpg"><img class="aligncenter size-medium wp-image-1758" title="tela11" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela11-284x300.jpg" alt="" width="284" height="300" /></a></p>
<p>&nbsp;</p>
<p>Os arquivos JAR do Processing serão adicionados ao projeto, assim será possível realizar a importação das bibliotecas.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela12.jpg"><img class="aligncenter size-medium wp-image-1759" title="tela12" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela12-300x255.jpg" alt="" width="300" height="255" /></a></p>
<p>&nbsp;</p>
<p>Foi testado o seguinte código:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">testprocessing</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">processing.core.PApplet</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/**
*
* @author Eduardo Folly
*/</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> TestProcessing <span style="color: #000000; font-weight: bold;">extends</span> PApplet <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">/*
     *
     */</span>
    @Override
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setup<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        size<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">640</span>, <span style="color: #cc66cc;">480</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
   <span style="color: #666666; font-style: italic;">/*
    *
    */</span>
    @Override
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> draw<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        background<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        rectMode<span style="color: #009900;">&#40;</span>CENTER<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        fill<span style="color: #009900;">&#40;</span>0xFFFFAA99<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        rect<span style="color: #009900;">&#40;</span>mouseX, mouseY, <span style="color: #cc66cc;">100</span>, <span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #008000; font-style: italic; font-weight: bold;">/**
     * @param args the command line arguments
     */</span>
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        PApplet.<span style="color: #006633;">main</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#123;</span> <span style="color: #0000ff;">&quot;testprocessing.TestProcessing&quot;</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>E o resultado obtido foi a aplicação rodando perfeitamente.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela13.jpg"><img class="aligncenter size-medium wp-image-1761" title="tela13" src="http://oslunaticos.com.br/wp-content/uploads/2012/02/tela13-300x236.jpg" alt="" width="300" height="236" /></a></p>
<p>&nbsp;</p>
<h6>Melhorias futuras e possíveis questões</h6>
<ul>
<li><span style="line-height: 18px;">Somente o código fonte do exemplo foi testado, é necessário testar com outros exemplos que utilizem bibliotecas específicas.<br />
</span></li>
<li><span style="line-height: 18px;">Devido ao Processing ser multi-plataforma, assim como o NetBeans, testar esta configuração em outros sistemas operacionais é imprescindível.</span></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://oslunaticos.com.br/2012/02/processing-no-netbeans/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Consumindo web service do Protheus com JAX-WS</title>
		<link>http://oslunaticos.com.br/2011/10/consumindo-web-service-do-protheus-com-jax-ws/</link>
		<comments>http://oslunaticos.com.br/2011/10/consumindo-web-service-do-protheus-com-jax-ws/#comments</comments>
		<pubDate>Wed, 26 Oct 2011 21:08:32 +0000</pubDate>
		<dc:creator>Eduardo</dc:creator>
				<category><![CDATA[Dicas]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JAX-WS]]></category>
		<category><![CDATA[Protheus]]></category>
		<category><![CDATA[Totvs]]></category>
		<category><![CDATA[Web Service]]></category>

		<guid isPermaLink="false">http://oslunaticos.com.br/?p=1701</guid>
		<description><![CDATA[O que é web service? De acordo com a W3C, web service é um software projetado para suportar interação máquina-máquina de forma interoperável através de uma rede. Ele tem uma interface descrita em um formato máquina-processável (especificamente WSDL). Sistemas que interagem com o web service de uma maneira prescrita por sua descrição, utilizam mensagens SOAP, [...]]]></description>
			<content:encoded><![CDATA[<h3>O que é web service?</h3>
<p>De acordo com a <a href="http://www.w3.org/" target="_blank">W3C</a>, <a href="http://www.w3.org/TR/2004/NOTE-ws-gloss-20040211/" target="_blank">web service</a> é um software projetado para suportar interação máquina-máquina de forma interoperável através de uma rede. Ele tem uma interface descrita em um formato máquina-processável (especificamente WSDL). Sistemas que interagem com o web service de uma maneira prescrita por sua descrição, utilizam mensagens SOAP, normalmente transmitidas através de HTTP com uma serialização XML em conjunto com outros padrões web.</p>
<p>&nbsp;</p>
<h3>O caminho.</h3>
<p>Para a integração com outros sistemas, o ERP Protheus da Totvs provê uma série de web services e ainda existe a possibilidade de desenvolver e publicar serviços customizados dentro da plataforma.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/server.png"><img class="aligncenter size-medium wp-image-1722" title="server" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/server-300x185.png" alt="" width="300" height="185" /></a></p>
<p style="text-align: center;"><em>Figura 1 &#8211; Página com a descrição dos serviços disponíveis do Protheus.</em></p>
<p>&nbsp;</p>
<h3>O problema.</h3>
<p>Ao iniciar o desenvolvimento de uma aplicação em Java 6, utilizando o Netbeans 7.0 como IDE e a biblioteca JAX-WS para o consumo dos serviços, foi exibida a mensagem <em>&#8220;WEBSERVICE ERROR : Soap Prefix Missing : USERPORTAL : PRTLOGIN : Formato do Pacote Soap DESCONHECIDO.&#8221;</em> ao tentar executar uma chamada simples ao serviço USERPORTAL, método PRTLOGIN.<br />
<span id="more-1701"></span><br />
&nbsp;</p>
<h3>A solução.</h3>
<p>Será demostrado um passo-a-passo de como iniciar um projeto até o consumo com sucesso do web service especificado.</p>
<p>No Netbeans, clique no menu <em>Arquivo</em>, seguido por <em>Novo Projeto</em>. Na tela que irá abrir, selecione em <em>Categorias:</em> &#8220;Java&#8221; e em <em>Projetos:</em> &#8220;Aplicativo Java&#8221;. Clique em <em>Próximo</em>.</p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image000.png"><img class="aligncenter size-medium wp-image-1706" title="image000" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image000-300x206.png" alt="" width="300" height="206" /></a><em>Figura 2 &#8211; Novo projeto.</em></p>
<p>&nbsp;</p>
<p>Informe o nome do projeto (neste caso SigaWS), faça modificações caso ache necessário e clique em <em>Finalizar</em>.</p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image001.png"><img class="aligncenter size-medium wp-image-1707" title="image001" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image001-300x206.png" alt="" width="300" height="206" /></a><em>Figura 3 &#8211; Novo Aplicativo Java</em></p>
<p>&nbsp;</p>
<p>Com o projeto criado, deverá ser criada a classe para consumo do serviço USERPORTAL, para isto clique em <em>Arquivo</em>, seguido por <em>Novo Arquivo</em>.</p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image002.png"><img class="aligncenter size-medium wp-image-1708" title="image002" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image002-220x300.png" alt="" width="220" height="300" /></a><em>Figura 4 &#8211; Arquivo, Novo Arquivo.</em></p>
<p>&nbsp;</p>
<p>Na tela de Novo Arquivo selecione em <em>Categorias:</em> &#8220;Serviços Web&#8221; e em <em>Tipos de arquivos:</em> &#8220;Cliente para serviço Web&#8221;, clicando em <em>Próximo</em>.</p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image003.png"><img class="aligncenter size-medium wp-image-1709" title="image003" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image003-300x206.png" alt="" width="300" height="206" /></a><em>Figura 5 &#8211; Novo arquivo.</em></p>
<p>&nbsp;</p>
<p>Na próxima tela deverá ser selecionada a opção <em>WSDL URL</em> e informado o caminho do arquivo de definição do serviço de acordo com o publicado no Protheus. Clique em <em>Finalizar</em>.</p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image004.png"><img class="aligncenter size-medium wp-image-1710" title="image004" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image004-300x206.png" alt="" width="300" height="206" /></a><em>Figura 6 &#8211; Novo cliente para serviço Web.</em></p>
<p>&nbsp;</p>
<p>Voltando para a tela principal do Netbeans, vá na aba <em>Projetos</em> e abra os nós de <em>Referência de serviços Web</em> até localizar o método PRTLOGIN.</p>
<p>Selecione o nó PRTLOGIN, arraste-o e solte dentro da classe SigaWS, isto fará com que o código de chamada ao método seja gerado automaticamente. Em seguida defina os parâmetros para execução da chamada do serviço.</p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image005.png"><img class="aligncenter size-medium wp-image-1711" title="image005" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image005-300x232.png" alt="" width="300" height="232" /></a><em>Figura 7 &#8211; Definição da classe de execução do Web Service.</em></p>
<p>&nbsp;</p>
<p>Executando o projeto neste momento, será verificado o erro citado no início do artigo.</p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image006.png"><img class="aligncenter size-medium wp-image-1712" title="image006" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image006-300x121.png" alt="" width="300" height="121" /></a><em>Figura 8 &#8211; Erro na execução.</em></p>
<p>&nbsp;</p>
<p>Para solucionar o problema, o proposto é adicionar um manipulador de mensagem SOAP e realizar algumas modificações nos dados retornados pelo serviço, assim possibilitando a serialização.</p>
<p>Clique em <em>Arquivo</em>, seguido por <em>Novo Arquivo</em>. Na tela seguinte, selecione em <em>Categorias:</em> &#8220;Serviços Web&#8221; e em <em>Tipos de arquivos:</em> &#8220;Manipulador de mensagens&#8221;, clique em <em>Próximo</em>.</p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image007.png"><img class="aligncenter size-medium wp-image-1713" title="image007" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image007-300x206.png" alt="" width="300" height="206" /></a><em>Figura 9 &#8211; Novo arquivo &#8211; Manipulador de mensagens.</em></p>
<p>&nbsp;</p>
<p>Informe o nome para o arquivo, neste caso SigaHandler, clique em <em>Finalizar</em>.</p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image008.png"><img class="aligncenter size-medium wp-image-1714" title="image008" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image008-300x206.png" alt="" width="300" height="206" /></a><em>Figura 10 &#8211; Novo manipulador de mensagens.</em></p>
<p>&nbsp;</p>
<p>Com o arquivo gerado o código deverá ficar desta forma:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">sigaws.ws</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.ByteArrayOutputStream</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Collections</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.Set</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.xml.namespace.QName</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.xml.soap.SOAPException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.xml.soap.SOAPMessage</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.xml.transform.Source</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.xml.transform.stream.StreamSource</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.xml.ws.handler.MessageContext</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.xml.ws.handler.soap.SOAPHandler</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.xml.ws.handler.soap.SOAPMessageContext</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/**
 *
 * @author Eduardo Folly
 */</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> SigaHandler <span style="color: #000000; font-weight: bold;">implements</span> SOAPHandler <span style="color: #009900;">&#123;</span>
&nbsp;
    @Override
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> handleMessage<span style="color: #009900;">&#40;</span>SOAPMessageContext messageContext<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">boolean</span> outbound <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Boolean</span><span style="color: #009900;">&#41;</span> messageContext.<span style="color: #006633;">get</span><span style="color: #009900;">&#40;</span>MessageContext.<span style="color: #006633;">MESSAGE_OUTBOUND_PROPERTY</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>outbound<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
                SOAPMessage msg <span style="color: #339933;">=</span> messageContext.<span style="color: #006633;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
                <span style="color: #003399;">ByteArrayOutputStream</span> baos <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">ByteArrayOutputStream</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                msg.<span style="color: #006633;">writeTo</span><span style="color: #009900;">&#40;</span>baos<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #003399;">String</span> teste <span style="color: #339933;">=</span> baos.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span>getMessageEncoding<span style="color: #009900;">&#40;</span>msg<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                teste <span style="color: #339933;">=</span> teste.<span style="color: #006633;">replaceAll</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;S:&quot;</span>, <span style="color: #0000ff;">&quot;soap:&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                teste <span style="color: #339933;">=</span> teste.<span style="color: #006633;">replaceAll</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;S=&quot;</span>, <span style="color: #0000ff;">&quot;soap=&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
                Source src <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> StreamSource<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> java.<span style="color: #006633;">io</span>.<span style="color: #003399;">StringReader</span><span style="color: #009900;">&#40;</span>teste<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                msg.<span style="color: #006633;">getSOAPPart</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">setContent</span><span style="color: #009900;">&#40;</span>src<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    @Override
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">Set</span> getHeaders<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #003399;">Collections</span>.<span style="color: #006633;">EMPTY_SET</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    @Override
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> handleFault<span style="color: #009900;">&#40;</span>SOAPMessageContext messageContext<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    @Override
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> close<span style="color: #009900;">&#40;</span>MessageContext context<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #003399;">String</span> getMessageEncoding<span style="color: #009900;">&#40;</span>SOAPMessage msg<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> SOAPException <span style="color: #009900;">&#123;</span>
        <span style="color: #003399;">String</span> encoding <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;utf-8&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>msg.<span style="color: #006633;">getProperty</span><span style="color: #009900;">&#40;</span>SOAPMessage.<span style="color: #006633;">CHARACTER_SET_ENCODING</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            encoding <span style="color: #339933;">=</span> msg.<span style="color: #006633;">getProperty</span><span style="color: #009900;">&#40;</span>SOAPMessage.<span style="color: #006633;">CHARACTER_SET_ENCODING</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #000000; font-weight: bold;">return</span> encoding<span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>&nbsp;</p>
<p>Assim o resultado final da classe é apresentado.</p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image009.png"><img class="aligncenter size-medium wp-image-1715" title="image009" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image009-300x232.png" alt="" width="300" height="232" /></a><em>Figura 11 &#8211; Classe SigaHandler.</em></p>
<p>&nbsp;</p>
<p>Agora é necessário relacionar o manipulador de mensagens com o serviço USERPORTAL. Para isto na aba <em>Projetos </em>clique com o botão direito do mouse no serviço USERPORTAL, seguido por <em>Configurar manipuladores&#8230;</em></p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image010.png"><img class="aligncenter size-medium wp-image-1716" title="image010" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image010-201x300.png" alt="" width="201" height="300" /></a><em>Figura 12 &#8211; Configurar manipuladores&#8230;</em></p>
<p>&nbsp;</p>
<p>Na próxima tela, clique em <em>Adicionar</em>.</p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image011.png"><img class="aligncenter size-medium wp-image-1717" title="image011" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image011-300x174.png" alt="" width="300" height="174" /></a><em>Figura 13 &#8211; Configurar os manipuladores de mensagens.</em></p>
<p>&nbsp;</p>
<p>Selecione o arquivo manipulador, neste caso o arquivo SigaHandler.java, e clique em <em>OK</em>.</p>
<p style="text-align: center;"><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image012.png"><img class="aligncenter size-medium wp-image-1718" title="image012" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image012-244x300.png" alt="" width="244" height="300" /></a><em>Figura 14 &#8211; Selecionar classe de manipuladores de mensagens.</em></p>
<p>&nbsp;</p>
<p>Após a confirmação será exibido o manipulador de mensagens associado ao serviço. Clique em <em>OK</em>.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image013.png"><img class="aligncenter size-medium wp-image-1719" title="image013" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image013-300x174.png" alt="" width="300" height="174" /></a></p>
<p style="text-align: center;"><em>Figura 15 &#8211; Associação do manipulador de mensagens.</em></p>
<p>&nbsp;</p>
<p>Desta forma a execução do programa funciona perfeitamente.</p>
<p><a href="http://oslunaticos.com.br/wp-content/uploads/2011/10/image014.png"><img class="aligncenter size-medium wp-image-1720" title="image014" src="http://oslunaticos.com.br/wp-content/uploads/2011/10/image014-300x147.png" alt="" width="300" height="147" /></a></p>
<p style="text-align: center;"><em>Figura 16 &#8211; Execução do programa.</em></p>
<p>&nbsp;</p>
<h3>Considerações finais.</h3>
<p>Até o presente momento a Totvs não disponibilizou uma modificação no padrão do retorno da mensagem do serviço Web para o Protheus 10.</p>
<p>Gostaria de agradecer a Vicente de Paula (vicenterecife@gmail.com) por ter originado os questionamentos que deram origem a este artigo.</p>
]]></content:encoded>
			<wfw:commentRss>http://oslunaticos.com.br/2011/10/consumindo-web-service-do-protheus-com-jax-ws/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Novo NetBeans 6.8</title>
		<link>http://oslunaticos.com.br/2009/12/novo-netbeans-6-8/</link>
		<comments>http://oslunaticos.com.br/2009/12/novo-netbeans-6-8/#comments</comments>
		<pubDate>Sun, 20 Dec 2009 14:51:18 +0000</pubDate>
		<dc:creator>Eduardo</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[NetBeans]]></category>

		<guid isPermaLink="false">http://oslunaticos.com.br/?p=444</guid>
		<description><![CDATA[Hoje ao abrir o Netbeans (já fazia duas semanas que não passava perto do Java) recebi um informativo falando sobre uma nova versão que estava disponível para download. Então vamos ao que interessa: O mundo Java é dividido entre duas IDE&#8217;s (Integrated Development Environment), o NetBeans e o Eclipse. Grande parte dos desenvolvedores que acompanham [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-446" href="http://oslunaticos.com.br/2009/12/novo-netbeans-6-8/netbeans/"><img class="alignleft size-full wp-image-446" style="border: 5px solid white;" title="netbeans" src="http://oslunaticos.com.br/wp-content/uploads/2009/12/netbeans.png" alt="netbeans" width="249" height="264" /></a>Hoje ao abrir o Netbeans (já fazia duas semanas que não passava perto do Java) recebi um informativo falando sobre uma nova versão que estava disponível para download. Então vamos ao que interessa:</p>
<p>O mundo <a href="http://java.sun.com" target="_blank">Java</a> é dividido entre duas IDE&#8217;s (Integrated Development Environment), o <a href="http://www.netbeans.com/" target="_blank">NetBeans</a> e o <a href="http://www.eclipse.org/" target="_blank">Eclipse</a>. Grande parte dos desenvolvedores que acompanham o Java desde seus primórdios e os oriundos do C++ são cativados amplamente pelo Eclipse. Já a nova geração do Java e os amantes da interface gráfica se encantaram com a facilidade de criar interfaces tal como o Delphi e o Visual Studio.</p>
<p>Vale a pena lembrar que o NetBeans é um projeto de código aberto e mantido pela Sun.</p>
<p>Pelo fato de ser propriamente desenvolvido em Java é possível executa-lo em Linux, Solaris, MacOS e Windows.</p>
<p>Então, com este brevíssimo histórico, é apresentada a nova versão do NetBeans.</p>
<p>Com o NetBeans desenvolvemos aplicações Java para desktop, enterprise, web, FX e mobile. Além disso é possível trabalhar com C/C++, PHP, JavaScript, Groovy, e Ruby.</p>
<p>O vídeo abaixo é parte inicial de uma coleção de vídeos que apresentam as funcionalidades do NetBeans.</p>
<p style="text-align: center;"><object id="flashObj" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="486" height="322" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="bgcolor" value="#FFFFFF" /><param name="flashVars" value="videoId=55590187001&amp;linkBaseURL=https%3A%2F%2Fchannelsun.sun.com%2Fmedia%2Fshow%2F14814&amp;playerID=1640183659&amp;domain=embed&amp;" /><param name="base" value="http://admin.brightcove.com" /><param name="seamlesstabbing" value="false" /><param name="allowFullScreen" value="true" /><param name="swLiveConnect" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://c.brightcove.com/services/viewer/federated_f9/1640183659?isVid=1&amp;publisherID=1460825906" /><param name="name" value="flashObj" /><param name="flashvars" value="videoId=55590187001&amp;linkBaseURL=https%3A%2F%2Fchannelsun.sun.com%2Fmedia%2Fshow%2F14814&amp;playerID=1640183659&amp;domain=embed&amp;" /><param name="allowfullscreen" value="true" /><embed id="flashObj" type="application/x-shockwave-flash" width="486" height="322" src="http://c.brightcove.com/services/viewer/federated_f9/1640183659?isVid=1&amp;publisherID=1460825906" name="flashObj" allowscriptaccess="always" swliveconnect="true" allowfullscreen="true" seamlesstabbing="false" base="http://admin.brightcove.com" flashvars="videoId=55590187001&amp;linkBaseURL=https%3A%2F%2Fchannelsun.sun.com%2Fmedia%2Fshow%2F14814&amp;playerID=1640183659&amp;domain=embed&amp;" bgcolor="#FFFFFF"></embed></object></p>
<p>Os outros vídeos podem ser acessados através deste link: <a href="http://netbeans.org/kb/docs/intro-screencasts.html" target="_blank">http://netbeans.org/kb/docs/intro-screencasts.html</a></p>
<p>Fica então o convite para conhecer um pouco mais da plataforma Java e como utiliza-la através do NetBeans.</p>
]]></content:encoded>
			<wfw:commentRss>http://oslunaticos.com.br/2009/12/novo-netbeans-6-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

