Desenvolvimento

Dicas e notícias sobre desenvolvimento de software

Consumindo web service do Protheus com JAX-WS

2

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, normalmente transmitidas através de HTTP com uma serialização XML em conjunto com outros padrões web.

 

O caminho.

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.

Figura 1 – Página com a descrição dos serviços disponíveis do Protheus.

 

O problema.

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 “WEBSERVICE ERROR : Soap Prefix Missing : USERPORTAL : PRTLOGIN : Formato do Pacote Soap DESCONHECIDO.” ao tentar executar uma chamada simples ao serviço USERPORTAL, método PRTLOGIN.
(mais…)

Novo NetBeans 6.8

0

netbeansHoje 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’s (Integrated Development Environment), o NetBeans e o Eclipse. 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.

Vale a pena lembrar que o NetBeans é um projeto de código aberto e mantido pela Sun.

Pelo fato de ser propriamente desenvolvido em Java é possível executa-lo em Linux, Solaris, MacOS e Windows.

Então, com este brevíssimo histórico, é apresentada a nova versão do NetBeans.

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.

O vídeo abaixo é parte inicial de uma coleção de vídeos que apresentam as funcionalidades do NetBeans.

Os outros vídeos podem ser acessados através deste link: http://netbeans.org/kb/docs/intro-screencasts.html

Fica então o convite para conhecer um pouco mais da plataforma Java e como utiliza-la através do NetBeans.

Dicas SQL – Resetando um campo auto incremento de um BD

0

Para resetar um campo auto incremento de um banco  basta utilizar o comando abaixo:

MySQL:

ALTER TABLE tabela AUTO_INCREMENT = 0

SQL Server:

DBCC CHECKIDENT(‘tabela’, RESEED, 0) ;

Paradox 7 (Não testado em outras versões):

function ResetAutoInc(FileName: TFileName; NewValue:Longint): Boolean;
begin
with TFileStream.Create(NomeDoArquivo, fmOpenReadWrite) do
try
Result := (Seek($49, soFromBeginning) = $49) and (Write(NovoValor, 4) = 4);
finally
Free;
end;
end;

Quem souber em mais Bd’s é só comentar aqui que adiciono e dou os devidos créditos.

BIL – Baixador de Imagens dos Lunáticos

4

Baixador de Imagens dos Lunáticos

No dia 31/08/09 em nosso grupo de e-mails surgiu uma necessidade:

“Pessoal, alguem conhece um soft que faça download em massa das imagens resultantes de uma procura do google image? (a imagem full não os thumbs)”

A partir desta data fiquei com esta idéia na cabeça, até começar alguns estudos em 16/09/09 e no dia 01/11/09 saiu a nossa primeira versão.

O Baixador de Imagens dos Lunáticos é um programa que se utiliza do motor de busca de imagens do google para baixar as imagens diretamente das páginas originais, facilitando assim a busca e aquisição de imagens.

O software foi desenvolvido em java e necessita da JRE 1.6 para funcionar corretamente. Para baixar a JRE visite: http://java.sun.com/javase/downloads/

Nossa primeira idéia para utiliza-lo foi baixando papéis de parede. Desde então o BIL está recebendo melhorias.

A tela princial do BIL:

BIL - Tela Principal

A página do projeto que ainda está em construção: http://code.google.com/p/bilbr/

Para realizar o download, clique aqui!!

Fica aqui o convite para todos participarem do desenvolvimento do BIL!

Firebug

0

O Firebug é uma extensão para o Firefox que permite debugar (ou se preferir depurar :-) ), editar e monitorar CSS, HTML, DOM e Javascript em páginas Web. No Firebug também está disponível um console para registrar erros e acompanhar valores de variáveis.

Fica aí essa dica, afinal de contas quem nunca precisou colocar um alert em uma função javascript para “debugar” seu código, que jogue a primeira pedra… hehehehe eu cansei de fazer isso :-)

Você pode baixar o Firebug daqui: http://getfirebug.com/

Nesse link abaixo é possível ver um vídeo tutorial do uso do firebug, é bom para dar uma visão mais clara e ver como ele é maneiro.

http://www.digitalmediaminute.com/screencast/firebug-js/

Visitor Maps não mostra mapas.

0

Ao iniciar este blog me deparei com os vários plug-ins do WordPress, achei isso facinante, muitas utilidades com pouquissimo trabalho.

Navegando entre as milhões de opções achei um plug-in muito interessante chamado Visitor Maps and Who’s Online. Muitas funcionalidades foram informadas e acabei sendo convencido a instalar este surpreendende extra neste pequeno blog.

Para minha felicidade a instalação foi completamente descomplicada, em alguns cliques estava com varias informações geográficas sendo disponibilizadas no Painel e sem nenhum custo adicional de um serviço pago.

Após todas estas maravilhas tive que começar a descer do céu, pois o plug-in necessida de um banco de dados de aproximadamente 30Mb que deve ser colocado na sua pasta padrão. Tudo bem até que o Felippe fez o upload do arquivo rapidinho. Então novas funcionalidades surgiram: bandeiras dos países, coordenadas, latitude e longitude. Cada vez melhorando mais.

Até que me indago sobre: Visitor Maps, correto? Aonde estão os mapas? Depois de algumas visitas, cliques, tentativas … não consegui nada !!

Então acabei o espírito aventureiro falou mais alto fui me utilizar de recursos avançados com a ajuda do nosso ilustríssimo Homem Bit, Clemar.

Cenário:

  • WordPress 2.8.4
  • Visitor Maps 1.2.9

O problema:

A página é carregada, as localizações dos visitantes são informadas, mas o mapa de fundo não é exibido.

A pesquisa:

A partir deste problema, Clemar fez o download da imagem através do flashget e tentou abri-la, mas ocorreu o mesmo problema.

O próximo passo para diagnosticar o defeito da imagem utilizando um recurso muito útil na década de 80. Abrimos um prompt de comando e digitamos: “edit /70 imagem.jpg”

Edit DOS

Clemar verificou que o cabeçalho da imagem estava danificado, então a imagem foi alterada diretamente em seu código para tentar solucionar.

Então … Funcionou !! O visualizador do Windows conseguiu abrir a imagem sem problemas.

A nossa nova tarefa foi verificar se o arquivo que está no ftp não estava corrompido. Blz … O arquivo em perfeito estado.

A saída encontrada foi analisar o pacote de retorno do servidor para identificar o momento em que a imagem estava sendo corrompida. Para isso utilizamos um sniffer, um bem velinho, o Iris 4.0.

Com ele analisamos o tráfego:

Iris

Está explicado!! Estão sendo informados 3 CRLF de forma incorreta no cabeçalho da imagem e este foi o erro que conseguimos corrigir através do pré-histórico edit do DOS.

Mas como que descobrimos essa mágica. Nada melhor do que um pouco de teoria: part of Hypertext Transfer Protocol — HTTP/1.1 – RFC 2616 Fielding, et al. – Section 6 Response

Com este passo detectamos que o problema está no lado do servidor. Ufa, 50% a menos.

Examinando o código fonte chegamos ao class-wo-worldmap.php, um script que pega a imagem do servidor, faz algumas alterações e assim a exibe no navegador.

Após algumas horas de debug, chegamos a uma solução.

A solução:

Sabendo que o problema está na montagem do cabeçalho da imagem fomos direto ao ponto e colocando a prova todos os nossos conhecimentos de PHP, nos encontramos novamente com ob_end_clean.

Esta maravilhosa função limpa e desativa o buffer de saída, ou seja, qualquer lixo que exista é mandado embora. Como nós queremos somente o cabeçalho da imagem esta solução foi perfeita.

Um print para elucidar:

class-wo-worldmap

Conclusão:

Não temos certeza se esta é a melhor solução para o problema, ou se o desenvolvedor Mike Challis aprova.

Vamos entrar em contato e verificar a necessidade de correção, mas o nosso blog está exibindo os mapas!!

Dicas SQL – Selecionar linha aleatória

0

Há algum tempo apareceu uma necessidade de adquirir uma linha de uma tabela de forma aleatória, então temos as seguintes instruções.

MySQL

SELECT column FROM table
ORDER BY RAND()
LIMIT 1

PostgreSQL

SELECT column FROM table
ORDER BY RANDOM()
LIMIT 1

Microsoft SQL Serve:

SELECT TOP 1 column FROM table
ORDER BY NEWID()

IBM DB2

SELECT column, RAND() as IDX
FROM table
ORDER BY IDX FETCH FIRST 1 ROWS ONLY

Oracle

SELECT column FROM
( SELECT column FROM table
ORDER BY dbms_random.value )
WHERE rownum = 1

Fonte:
http://www.petefreitag.com/item/466.cfm

Dicas SQL – Limitando registros de uma consulta no BD

4

Começando com algumas dicas simples de MySQL:

Para mostrar o último registro de uma tabela podemos utilizar o seguinte comando:

select * from tabela order by id desc limit 1
O “desc” determina que os registros serão exibidos de forma decrescente.

Para exibir os 5 últimos registros de sua tabela:

select * from tabela order by id desc limit 5
Ou seja, o número após o “limit” é o que determina quantos registros serão exibidos.

Agora para mostrar apenas o penúltimo registro:

select * from tabela order by id desc limit 1,1

Sobre o comando acima, o primeiro número determina quantos registros serão “pulados”, e o segundo representa quantos registros serão mostrados.

Portanto, se quisermos mostrar o penúltimo e o antepenúltimo registro podemos utilizar o seguinte comando:

select * from tabela order by id desc limit 1,2

A partir daí dá pra conseguir muitos resultados específicos de uma tabela, lembrando que o campo id é um inteiro com auto incremento.

Até a próxima!!!

Go to Top
9 visitantes online agora
1 visitantes, 8 bots, 0 membros
Máx. de visitantes hoje: 9 às 12:11 am GMT+3
Este mês: 17 às 02-01-2012 10:57 am GMT+3
Este ano: 30 às 01-15-2012 05:27 pm GMT+3
No total: 263 às 11-11-2009 02:50 pm GMT+3