0

Consumindo WebServices gerados com JAX-WS

Java (2)Consumindo WebServices gerados com JAX-WS

Há algumas postagens mostrei como gerar webservices com jaxws, nesta mostrarei como consumir o Webservice gerando na postagem “Gerando WebServices com JAX-WS“. Para consumir um webservice o mesmo deve estar publicado no nosso caso publicamos o mesmo nesta url http://localhost:8080/WsServidor/service, além de estar publicado devemos gerar os stubs do client na raiz do nosso projeto.

Para consumir o serviço devemos executar os comandos a seguir via prompt de comando apontado pro diretório do projeto, no meu caso criei um projeto no eclipse com o nome “prjWebServiceJaxClient“. Seguem os comandos:

      • Apontar pro diretório do projeto

      •  Gerar os Stubs do Client

 A Ferramenta WSIMPORT

A ferramenta de linha de comandos wsimport processa um arquivo WSDL (Web Services Description Language) existente e gera os artefatos portáteis necessários para desenvolver os aplicativos de serviço da Web JAX-WS (Java API for XML-Based Web Services).(Definição da IBM)

A ferramenta de linha de comandos wsimport suporta a abordagem completa para o desenvolvimento dos serviços da Web JAX-WS. Quando você iniciar com um arquivo WSDL existente, utilize a ferramenta de linha de comandos wsimport para gerar os artefatos portáteis do JAX-WS necessários. (Definição da IBM)

Consumindo o WebService

Após gerar os artefatos de nosso cliente podemos utilizarmos livremente em nosso projeto/aplicação, segue uma abordagem de utilização na classe “ConsumirServico. No pacote “servico” estão os stubs gerados a partir do wsimport.

clientejaxws

Para consumir o serviço segue a implementação da classe ConsumirServico.

Após implementado podemos testar os serviço acessíveis pela interface do nosso cliente.

resultado

 

 

0

Persistência de Objetos com Hibernate (Parte 03)

logoHibernate

Persistência de Objetos com Hibernate (Parte 03)

Para testarmos as implementações realizadas na parte 1 e na parte 2 da postagem sobre Persistências de Objeto com Hibernate separei um main com as rotinas implementadas. Até aqui o projeto tem a seguinte estrutura:

 

prjHibernate

Para finalizar a primeira parte de postagens sobre o Hibernate e o seu poder em mapear e persistir objetos, em breve adicionarei mais temas relacionados ao hibernate, tais como relaciomentos, consultas com Criteria entre outros. Espero ter ajudado de alguma forma com essas postagens simples porém funcional. rsrs…

Testando o Projeto

Veja também as postagens anteriores:

0

Persistência de Objetos com Hibernate (Parte 02)

logoHibernatePersistência de Objetos com Hibernate (Parte 02)

Na postagem anterior vimos como mapear uma classe persistente e o como implementar o arquivo de configuração do Hibernate. Nesta postagem partiremos para a implementação do HibernateUtil que será a classe responsável por estabelecer uma sessão de conexão com a base de dados e criaremos a classe PesssoaDAO com as rotinas de banco referentes a classe de persistência PessoaVo.

Classe HibernateUtil

A classe HibernateUtil.java é disponibilizada com o Hibernate para ajudar o programador a criar os objetos Session responsáveis por fazer a persistência dos objetos. Segue a implementação da classe.

 Classes PessoaDAO e ContatoDAO

As classes PessoaDAO e ContatoDAO serão implementadas com as rotinas de banco. Seguem as mesma:

PessoaDAO.java

ContatoDAO.java

 Agora além das classes persistentes, do hibernate.cfg.xml, do HibernateUtil temos também definidos os DAOs do nosso projeto. Na próxima postagem colocarei um main para teste da estrutura criada.

0

Persistência de Objetos com Hibernate (Parte 01)

logoHibernatePersistência de Objetos com Hibernate (Parte 01)

Está é a primeira parte de uma série de postagens que farei sobre o Framework Hibernate, demonstrarei a facilidade de utilização deste framework para persistências de objetos em banco de dados relacionais.

Introdução ao Hibernate

O Hibernate é um framework que provê a persistências de objetos Java em um banco de dados relacional. Este framework oferece recursos que facilitam o mapeamento do modelo orientado objetos para modelo relacional fazendo uso de um processo chamado de MOR (Mapeamento Objeto Relacional). Mesmo trabalhando com a persistência de objetos estamos trabalhando um SGBD relacional.

Para iniciarmos neste framework um exemplo básico de agenda com duas Classes.

diagrama_exemplo

Configuração do Hibernate:

  • Configuração do Classpath

Utilizarei as seguintes bibliotecas:

      • antlr-2.7.7.jar
      • dom4j-1.6.1.jar
      • hibernate-commons-annotations-4.0.2.Final.jar
      • hibernate-core-4.2.7.SP1.jar
      • hibernate-jpa-2.0-api-1.0.1.Final.jar
      • javassist-3.18.1-GA.jar
      • jboss-logging-3.1.0.GA.jar
      • jboss-transaction-api_1.1_spec-1.0.1.Final.jar
      • mysql-connector-java-5.0.3-bin.jar

Caso não possua as mesmas clique aqui para baixar as dependências do Hibernate e clique aqui para baixar o drive do mysql. Não se esqueça de colocar os .jars em seu classpath.

  • Mapeamento dos Objetos

No Hiberante podemos usar duas técnicas para mapear objetos através do uso de XML ou através de Anotations que é a forma que utilizaremos. No mapeamento XML é  preciso acrescentar estes arquivos XML de mapeamento no arquivo hibernate.cfg.xml, para indicar a localização física de cada um deles.

      • Mapeando a Classe PessoaVo

      • Mapeando a Classe ContatoVo

 

Descrição das Anotations:

@Entity - Representa uma classe de persistência, toda classe que represente uma tabela no banco de dados deve ser anotada com essa anotação.

@Table - Anotação responsável por dizer qual tabela no banco de dados a classe irá representar.

@Id – Indica o atributo chave da tabela.

@GenedatedValue – Indica que o atributo chave é auto_incement no caso do mySQL e Sequence no caso do Postgres.

@OneToMany – Representa um relacionamento 1 para muitos.

Arquivo de Configuração hibernate.cfg.xml

O Arquivo de configuração hibernate.cfg.xml deverá está presente no diretório src do seu projeto, nele estão mantidas algumas configurações de conexão tais como: host, usuário, senha e até os objetos mapeados como classes persistentes.

Segue a Implementação do Arquivo:

Classes Persistentes

As classes persistentes representam os “Vo”s que serão persistidos na base de dados, no nosso caso seriam PessoaVo e ContatoVo. O Hibernate associará estas classes a uma tabela referente a mesma no banco.

Na segunda parte veremos a camada DAO e a configuração de Session do Hibernate. Até a próxima.

0

Teclas de Atalho do Eclipse

eclipse2Teclas de Atalho do Eclipse

  • CTRL+Barra de Espaço

CTRL+ESPACO

O principal atalho para qualquer programador, implementa o auto complete do código. Através dele você pode conhecer todos os métodos, classes ou comandos presentes da linguagem configurada.

  • CTRL+1 ( Quick Fix )CTRL+1

Exibe uma dica de correção para as linhas com erro, basta posicionar o cursor do mouse no início da linha com erro e pressionar CTRL+1, selecionar uma opção desejada de acordo com sua necessidade e pressionar ENTER.

  • CTRL+SHIFT+O

Organiza os imports do arquivo, incluindo imports de classes utilizadas e excluindo imports não utilizados pelo arquivo.

  • CTRL+SHIFT+F

Formata e organiza o código fonte.

  • CTRL+SHIFT+L  ( Lista de atalhos )

CTRL+ALT+L

Exibe a lista de atalhos configurados no eclipse.

  • ALT+SHIFT+Q ( Show View)

ALT+SHIFT+Q

Mostra a lista de views e os atalhos diretos para acessa-las.

  • ALT+SHIFT+R  (Rename Refactoring)

ALT+SHIFT+R

Refatorar atributos, métodos ou classes.Para realizar esse comando primeiro selecione o nome de qualquer variável, método ou classe.

  • ALT+SHIFT+S ( Source Quick Menu )

ALT+SHIFT+S

Implementar métodos de interfaces, gerar getters e setters, toString, equals e hashcode,  adicionar e organizar imports entre outras coisas. Mesmo se aplica quando se clica o botão direito no código fonte.

  • ALT+SHIFT+T (Refactoring Quick Menu)

ALT+SHIFT+T

Refatorar atributos, métodos ou classes. Este atalho muda de acordo com a posição que está o cursor na página de código fontes.

  • ALT+SHIFT+M

ALT+SHIFT+M

Extrai uma determinada porção de código selecionado para um novo método.

  • CTRL+3 (Quick Navigate)

CTRL+3

Permite navega entre todos os arquivos abertos, todas as views abertas de todas as perspectivas e todos os comandos. Basta digitar o nome do arquivo ou da view, além de permitir gerar getters e setters com o comando ggas (Generate Getters and Setters), contrutores com os comandos gcfs  (Generate Constructors from Superclass) e gcuf (Generate Constructors Using Fields) , além de gerar toString, equals e etc.

  • CTRL+E (Switch Editor)

CTRL+E

Usado para alternar entre os arquivos abertos no editor do eclipse.

  • CTRL+O  (Quick Overview)

CTRL+O

Exibe a estrutura de uma classe, exibindo seus atributos e métodos.

  • CTRL+T (Quick Type Hierarchy)

CTRL+T

Exibe a hierarquia de uma classe.

 

0

Gerando WebServices com JAX-WS

Java (2)Gerando WebServices com JAX-WS

A Java XML API for Web Services (JAX-WS) é uma biblioteca de Web Services para Java, que permite implementar serviços baseados nas normas XSD, WSDL e SOAP. A JAX-WS define o mapeamento de WSDL para Java e vice-versa. Com a JAX-WS é possível implementar Web Services partindo de um contrato WSDL ou partindo de código Java. Com a JAX-WS é também possível criar código cliente de invocação de Web Services.

Testando na Prática

Crie um projeto no eclipse com a seguinte estrutura:

prjws

Crie a classe WsServidor no pacote service e o SourceFolder wsdl.

Implementação do Serviço

Para implementação da classe de serviço utilizaremos as anotações @WebService e @WebMethod do pacote javax.

@WebService : representa uma interface ou classe de serviço.

@WebMethod: representa os métodos de uma interface de serviço.

@WebParam: representa os parâmetros de um método.

Gerando os artefatos do Serviço

Para gerar os artefatos do Serviço utilizaremos a ferramenta wsgen. Execute os comandos do wsgen apontado pro diretório raiz do projeto.

Para gerar com o WSDL, ServicePort e ServiceName use o comando a seguir, digite tudo em uma única linha:

Depois de gerados os artefatos com o wsgen o projeto deverá ficar com seguinte estrutura:

prjws2 Gerando o EndPoint do Serviço

Para publicar o Serviço, criaremos uma classe com o publicador do endpoint.

Para visualizar execute main para publicar o Serviço e digite em seu navegandor: http://localhost:8080/WsServidor/service

0

Criação de Web Service com Spring e Apache CXF

Java (2)Criação de Web Services com Spring Framework e Apache CXF

Nesta postagem implemento a criação de um web service básico utilizando o framework spring e o Apache CXF. O projeto de exemplo foi criado com a seguinte estrutura:

estrutprojBibliotecas do Projeto

Criação da Interface do Serviço

Na Interface do Serviço definiremos os métodos a serem implementados no WebService.

Criação do Serviço

Na criação do serviço deveremos implementar interface do mesmo e realizar as anotações para definição do web service e de seus métodos(@WebService, @WebMethod).

Gerando o WebService

Para a criação do web service usando o Framework Spring e o Apache CXF devemos criar um arquivo xml com a configuração do serviço, informando a classe definida com a anotação web service e o endpoint do serviço. Para isso criaremos o arquivo webservice-definition-beans.xml no diretório WEB-INF do WebContent do projeto.

Codificação:

Por fim configuramos o web.xml com a seguinte implementação:

Em um próximo post criarei o Client do Serviço para consumir o WebService.

2

Conversão de Jrprint em PDF

Java (2)

 

Conversão de Jrprint em PDF

Nesta postagem veremos como converter um arquivo com a extensão .jrprint em um arquivo pdf utilizando o framework jasperreports. Os arquivos .jrprint são gerados através de relatórios JasperReport. O sistema de declaração de imposto de renda salva seus relatórios com essa extensão, podemos usar o framework do jasper para gerar o PDF de um determinado arquivo .jrprint com poucas linhas de comandos.

Bibliotecas Utilizadas neste exemplo:

libsjasper

Segue a implementação:

  • Exemplo simples de Conversão usando o método main.

  • Exemplo de como gerar um .jar do Conversor

Para executar o jar basta executar o comando abaixo no diretório onde está salvo o .jar, e apontar qual é o diretório e nome do arquivo a ser convertido.

Exemplo:

conversorJrprint

Código simples mas funcional, caso haja necessidade de converter diversos arquivos podemos criar um formulário com AWT ou Swing para executar a conversão. Em uma próxima postagem colocarei um exemplo com um Jframe.

 

0

Conexão com o Banco de Dados com MyBatis

mybatisLogoConexão com o Banco de Dados com MyBatis

Nesta postagem realizaremos a conexão com uma base de dados postgres utilizando o framework myBatis. Primeiramente criaremos a base de dados uma tabela onde serão persistidos os dados.

Script do Banco de Dados

 

Criando o Projeto no Eclipse

Para este tutorial utilizo o Eclipse Juno e o Banco de Dados PostGres. Além das bibliotecas do MyBatis descritas abaixo:

bibliotecasMybatis

Download Libs MyBatis

No Eclipse definimos a seguinte estrutura de projeto:

estruturaProjetoMybatis

Classe PessoaVo

Primeiramente criaremos um exemplo simples com apenas os dados de contato de uma pessoa, nos próximos posts abordarei relacionamentos e consultas complexas.

O Arquivo de Configuração SQLMapConfig.xml

No arquivo SQLMapConfig.xml criado a raiz do projeto contêm as configurações  da conexão com o postgres, tais como a url e porta do banco, nome da base, o alias da classe a ser mapeada, o mapper de persitência, etc.

Codificação:

Configurações de Conexão do MyBatis:

Type Aliases – Apelidos

Um type alias é um nome menor para um tipo Java. É apenas relevante para a configuração em XML e só existe para evitar redundância de digitar o nome completo de uma classe.

Usamos PessoaVo como tipo no resultMap no arquivo PessoaSqlMap.xml  porque configuramos PessoaVo como apelido.

Environments – Ambientes

O MyBatis pode ser configurado para ser usado em vários ambientes. Isso ajuda a re-usar os mapeamentos XML e, vários bancos de dados. Você pode configurar vários ambientes, mas você pode escolher apenas UM ambiente por instância do SqlSessionFactory.

A ambiente padrão/default e o ID do ambiente acho que se auto-explica. Você pode dar o nome que você desejar, mas tenha certeza de que um deles seja o mesmo que o padrão.

Transaction Manager – Gerenciamento de Transações

Existem dois tipos de TransactionManager:

  • JDBC – esta configuração faz o uso das features de commit e rollback do JDBC diretamente. Depende da conexão do dataSource para gerenciar o escopo da transação.
  • MANAGED – esta configuração não faz nada. Nunca faz commit ou rollback. Deixa toda a responsabilidade para o container de gerenciar o ciclo de vida da transação. Alguns containers não esperam que isso seja feito, e se precisar fechar a conexão, é melhor setar a propriedade closeConnection para false.

Data Source

O element dataSource configure a fonte da conexão do JDBC usando a interface padrão do JDBC DataSource.

  • driver
  • url
  • username
  • password

Connection Factory

Toda aplicação que utiliza o MyBatis é centralizada numa instância do SqlSessionFactory. Uma instância do SqlSessionFactory pode ser adquirida usando o SqlSessionFactoryBuilder. O SqlSessionFactoryBuilder pode criar uma instância do SqlSessionFactory a partir de um XML ou a partir de uma instância customizada da classe Configuration. (Fonte: Loiane.com)

Configuração do Connection Factory

Mapeando a Classe PessoaVo

Para mapear a classe PessoaVo, criamos um xml com as configurações de persistência do objeto da classe no banco, para isso inserimos as queries de persistência no mapper abaixo:

Configuração do Mapper da classe PessoaVo

  • resultMap – descreve como carregar os objetos do banco de dados para os resultsets.
  • insert – query de insert mapeada.
  • update – query de update mapeada.
  • delete –  query de delete.
  • select – query de select mapeada.

Camada de acesso aos dados

Para que tudo funcione devidamente só resta a configuração do DAO da nossa classe PessoaVo.

Testando o projeto com MyBatis

Realizando o um teste básico do modelo de dados implementado.

 

 

0

Framework MyBatis

mybatisLogoIntrodução MyBatis Framework

O MyBatis é um framework JDBC de persistência de dados que envolve o relacionamento entre um banco de dados relacional e uma aplicação orientada a objetos. O MyBatis mapeia objetos com queries SQL fazendo o uso de XML.O MyBatis fornece gerenciamento de transações, mapeia as propriedades dos objetos, integração com o Spring framework.É um framework de simples implementação e alta qualidade. Atualmente o MySpace utiliza este framework para gerenciar sua massa de dados. Utilizo atualmente em um projeto e o framework demonstra muita qualidade, basta ter um bom conhecimento de SQL e XML que tudo flui com facilidade.

O que é iBatis?

  • Um framework JDBC;
  • Os desenvolvedores escrevem SQL, iBATIS o executa usando JDBC;
  • Não precisa mais usar try / catch / finally / try / catch;
  • Um mapeador SQL;
  • Automaticamente mapeia propriedades do objeto em parâmetros de prepared statements;
  • Resulta automaticamente mapas de objetos;
  • Suporte a consultas com relacionamento N +1;
  • Um gerenciador de transações;
  • iBATIS fornece um gerenciamento de transações para operações de banco de dados se nenhuma outra transação está disponível;
  • iBATIS usa o gerenciamento de transações externas (Spring, EJB CMT, etc), se disponível;
  • Grande integração com Spring, mas também pode ser usado sem Spring.

O que não é iBatis?

  • ORM;
  • Não gera SQL;
  • Não tem uma linguagem de consulta de propriedade;
  • Não saber sobre a identidade do objeto;
  • Não transparente persistir objetos;
  • Não construir um cache de objeto;

Fonte: www.loiane.com