sexta-feira, 27 de dezembro de 2013

Para descontrair um pouco...! Carro

Para descontrair Um pouco...!
Isso sim e carro de verdade!



Achei muito legal este video e gostaria de compartilhar com todos!

Expondo Bean com SOAP, EJB, SESSION_BEAN

Expondo Bean com SOAP, EJB, SESSION_BEAN


Começaremos nosso projeto de Expor Beans, da seguinte forma:



Clicando em novo projeto, Java EE, logo Aplicação Enterprise. Como vemos na imagem 1.

Imagem 01.

Logo colocamos o nome do nosso projeto, EsporBean, como vemos na imagem 02.

Imagem 02.

Seguinte selecionou a opção ativar Injeção de Dependência, como mostra na imagem 03.

magem 03.


Logo clicamos em finalizar, teremos um projeto como mostra a imagem 04:
Imagem 04.
Agora vamos criar nossos Bean de persistência, para isso clicamos com o botão direito do mouse sobre Espor-Bean-ejb, novo, outros, selecionamos persistência, e logo Unidade de Persistência.
Como mostra a imagem 05:
Imagem 05.


Clicamos em Próximo.
Imagem 06.

Damos um nome de Cliente. Pacote colocamos: com.blog.rafa.com.java.modelo.bean, e Tipo Chave Primaria: java.lang.Integer. E deixamos selecionado o campo, Criar unidade de Persistência.
Como esta na figura 07:

Imagem 07.


Deve aparecer algo como na figura 08:
Imagem 08.
Agora em PostGres ou outro banco de dados criaremos o BD com nome de rafacomjava. Como mostra na imagem 09.
Imagem 09.


Deve ficar algo como na imagem 10.
Imagem 10.


Agora voltando ao NetBeans seguimos criando o provedor de banco de dados.


Selecionamos Fonte de Dados, nova conexão:
Com nome de jdbc/rafacomjava.

Imagem 11.


Em conexão de Banco Dados, selecionamos nova conexão de banco de dados, em Dever selecionamos PostGre, ou o driver do teu banco de dados escolhido.
E no botão adicionar, adicionou os drivers do Banco de dados (JDBC), no meu caso para o Postgre 9.2.


Deve estar algo como mostra na figura12.
Imagem 12.

Logo completamos os dados de personalizar a Nova Conexão.
Como mostra a figura 13.

Imagem 13.

Testamos a conexão para assegurar que esta tudo OK, e selecionamos lembrar senha, e logo clicamos em finalizar.

Imagem 14.

Deve ficar algo como na imagem15.


Imagem 15.


Clicamos Ok.


Imagem 16.


Ao final deve ficar algo como a próxima imagem 17.

Imagem 17.

Vêem-se em Arquivos de Configuração, estará um persistência.xml, que contem os dados para nossa persistência de dados no banco.
Imagem 18. 
Imagem 19. 



Continua!




quinta-feira, 26 de dezembro de 2013

Acionando Motor DC desde Arduino Parte - 1 //Recordemos!

Acionando Motor DC desde Arduino Parte - 1


Pessoal estarei mostrando como acionar um pequeno motor DC ...
objetivo e desde um Pronpt de Arduíno ligar e desligar o motor, e no próximo post faremos o mesmo mas com um botão.

o esquema tem que ser desta  mais ou menos desta forma:




Continuacao..

http://rafacomjava.blogspot.com/2013/08/acionando-motor-dc-desde-arduino-parte-1.html

terça-feira, 24 de dezembro de 2013

Java EE. Serviços Web SOAP com JAX-WS - parte_02 - EJB

Java EE. Serviços Web SOAP com JAX-WS parte 2 

1 - Devemos criar um Web Service Dentro de modulo de EJB.

2 – Expor como Web Service Beans de Sessão já existentes.


Devemos criar um novo projeto, indo em: Novo projeto, Java EE, logo selecionamos Modulo EJB.

Como mostra a imagem.


Logo colocamos o nome do projeto de ConverterUnidadesVolumen:

Devera aparecer algo como esta na imagem:


Logo criamos um Bean de Sessão, para nos passar dados, criando primeiro um pacote com o nome de com.blog.rafacomjava.convertirunidades.volumen, logo dentro deste pacote uma classe com o nome de ConverirUnidadesEmPeso.


Dentro da classe colocamos as seguintes anotações, para identificar um Bean de Sessão, a classe deve ficar assim:


package com.blog.rafacomjava.convertirunidades.volumen;


import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.jws.WebParam;


@Stateless()
@LocalBean()
public class ConverirUnidadesEmPeso
{
public Double litrosAGalones( double litros)
{
return litros * 2.35;
}


public Double GalonesALitros( double galones)
{
return galones / 2.35;
}
}
Deve ficar algo assim:

Para converter em um Web Service, clicamos novamente com botão direito do mouse no projeto ConverterUnidadesVolumen, logo Novo, Web Service, nome - ConverterUnidadesWS, logo pacote com.blog. rafacomjava.convertirunidades.volumen.ws, clicamos em Criar Web Service a partir do Bean de Sessão:

Clicamos em Procurar:

selecionamos ConverirUnidadesEmPeso.
Clicamos Ok, finalizar.

Deve ficar uma imagem como esta;

vêem-se em Detalhe na próxima imagem o Web Service criado.

Como podemos ver se criou um novo Web Service como cliente.
Podemos agora criar um cliente que acede às informações deste Web Service.

Criando nosso cliente criamos um novo projeto agora como Java Aplicação.


 Logo damos um nome de ClienteJavaAplicacao.

Agora devemos criar nosso Web Service dentro da aplicação Java. Clicando com o botão direito no projeto, novo Web Service, ClienteParaWebService.

Logo Procurar Projeto.

Lembro que a aplicação ConverterUnidadesVolumen deve estar funcionando por que se não Dara erro, pois não poderá ser encontrado o Web Service.

Clicamos em finalizar e deve fiar uma imagem desta forma:


Quase terminando veremos que em Referencias a Web Service seguindo, teremos os métodos.
Pressionamos com o mouse e arrastamos ate a classe ClienteJavaAplicacao. Mas lembrando arraste, pois assim o NetBenas nos vai fazer uma parte do código de forma automática.

Deve ficar algo assim:

em main colocamos:


System.out.println(" Resultado = " + galonesALitros(12.0) );




/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package clientejavaaplicacao;


/**
*
* @author rafael2
*/
public class ClienteJavaAplicacao {


/**
* @param args the command line arguments
*/
public static void main(String[] args) {
System.out.println(" Resultado = " + galonesALitros(12.0) );
}


private static Double galonesALitros(double galones) {
com.blog.rafacomjava.convertirunidades.volumen.ws.ConverterUnidadesWS_Service service = new com.blog.rafacomjava.convertirunidades.volumen.ws.ConverterUnidadesWS_Service();
com.blog.rafacomjava.convertirunidades.volumen.ws.ConverterUnidadesWS port = service.getConverterUnidadesWSPort();
return port.galonesALitros(galones);
}
}


Rodando a aplicação deve ter o seguinte resultado:


ant -f /home/rafael2/projetos2/soa/soa_blog/ClienteJavaAplicacao -Djavac.includes=clientejavaaplicacao/ClienteJavaAplicacao.Java -Drun.class=clientejavaaplicacao.ClienteJavaAplicacao run-single
init:
Deleting: /home/rafael2/projetos2/soa/soa_blog/ClienteJavaAplicacao/build/built-jar.properties
deps-jar:
Updating property file: /home/rafael2/projetos2/soa/soa_blog/ClienteJavaAplicacao/build/built-jar.properties
wsimport-init:
wsimport-client-ConverterUnidadesWS:
files are up to date
wsimport-client-generate:
Compiling 1 source file to /home/rafael2/projetos2/soa/soa_blog/ClienteJavaAplicacao/build/classes
compile-single:
run-single:
Resultado = 5.106382978723404
CONSTRUÍDO COM SUCESSO (tempo total: 2 segundos)


Obrigado a Todos e ate à próxima.

Feliz Natal!!!







domingo, 22 de dezembro de 2013

DTO , TO , VO , Entidade , Pojo , JavaBean - java

Vc já ouviu falar de DTO (Data Transfer Object), correto?


E de VO (Value Object)?
E de TO (Transfer Object)?
E de 
POJO (Plain Old Java Object)?
E de 
Java Bean?


VO (atual) -> ValueObject, objeto sem identidade que representa um valor como moeda ou data 


TO (antigo VO J2EE Patterns) -> Objeto utilizado apra transportar dados entre EJBs

DTO ou apenas TO = (Data) Transfer Object. Objecto de transferencia. Serve para enviar dados entre camadas do sistema que podem ou não estar na mesma máquina. São Serializáveis.

POJO = Plain Old Java Object (Velho e Simples Objecto Java) é um referencia a objectos que não dependem da herança de interfaces ou classes de frameworks externos.

JavaBean = Padrão para escrever objetos que contém estado. É uma especificação. Algumas coisas necessárias são : Construtor publico sem argumentos e metodos de acesso começam com set/get, mas tem mais. 

Java EE. Serviços Web SOAP com JAX-WS - parte_01

Java EE. Serviços Web SOAP com JAX-WS


Usando comunicações com WebService usando protocolo SOAP. Criando um serviço Web, que poderá ser acedido por qualquer linguagem de programação e vice versa.


Criamos um serviço Web e logo um cliente para aceder a este serviço.

Primeiro devemos criar uma aplicação Web, para criar o mesmo em netbeans:





Logo Indicamos o lugar onde será guardado o projeto:


Os Restos deixaram valores default.
Uma vez criado o serviço Web, temos que criar um web service, para o mesmo damos um clico com o botão direito do mouse no projeto, novo, WebService, nos trará a seguinte tela:




Colocamos o nome de ConversionUnidades, e colocamos em um pacote: com.blog.rafacomjava.
Logo clicamos em terminar.

Devera aparecer uma tela parecida com esta:








O que o NetBeans faz e criar um pequeno WebService, com as seguintes informações:


package com.blog.rafacomjava;

import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;

/**
*
* @author rafael2
*/
@WebService(serviceName = "ConversionUnidades")
public class ConversionUnidades {

/**
* This is a sample web service operation
*/
@WebMethod(operationName = "hello")
public String hello(@WebParam(name = "name") String txt) {
return "Hello " + txt + " !";
}

}


Entendendo:
As anotacoes:

@WebService, indica que a classe e um serviço Web

@WebMethod: mostra que e um metodo Web do serviço Web.

OperationName: e o nome com que os clientes vão conhecer este metodo.

@WebParam: usada para definir as propriedades dos parâmetros do WebService.

Name: usado para especificar o nome do parâmetro.












Vamos começar a personalizar nosso código:
podemos clicar com o mouse em design e teremos esta tela:




clicando sobre hello e logo acima vemos um “botão” Remover Operação, pode eliminar este metodo. Logo clicamos no “botão” AdicionarOperacao e criar nossa primeira operação:



Colocamos o nome de PoleagadasACentimetros, e Tipo de Retorno: java.lang.Double,
logo clicamos no botão adicionar, para adicionar parâmetros, com nome de polegadas e Tipo double, em seguida clicamos OK.
Fazemos novamente o mesmo processo clicando em AdicionarOperacao, Tipo de Retorno Double, logo adicionar para adicionar parâmetros que devem ser passados. Nome da operação deve ser CentimetrosAPolegadas, e passar por pametro, “centímetros” do tipo double.

Al final deveu ter esta visão:




clicando em código fonte devemos ter esta visão:



Lógico pode também apenas escrever os métodos:
/**
* Operação de Web service
*/
@WebMethod(operationName = "PolegadasACentimetros")
public Double PolegadasACentimetros(@WebParam(name = "polegadas") double polegadas) {
//TODO write your implementation code here:
return null;
}

/**
* Operação de Web service
*/
@WebMethod(operationName = "CentimetrosAPolegadas")
public Double CentimetrosAPolegadas(@WebParam(name = "centímetros") double centímetros) {
//TODO write your implementation code here:
return null;
}

e teremos o mesmo efeito.


Na aba ao lado no NetBenas podemos abrir nosso projeto, logo abrir a aba Web Service e veremos nosso WebService que recém criamos:



e clicando com o botão direito do mouse, em Testar WebService, para testar nossa aplicação.

Logo deve abrir nosso navegador da seguinte forma:




Logo voltando a nosso projeto vamos inserir conteúdo de nossas regras de negocio.

/**
* Operação de Web service
*/
@WebMethod(operationName = "PolegadasACentimetros")
public Double PolegadasACentimetros(@WebParam(name = "polegadas") double polegadas) {
//TODO write your implementation code here:
return polegadas * 2.5 ;
}

/**
* Operação de Web service
*/
@WebMethod(operationName = "CentimetrosAPolegadas")
public Double CentimetrosAPolegadas(@WebParam(name = "centímetros") double centímetros) {
//TODO write your implementation code here:
return centímetros / 2.5;
}

apenas modificamos o destacado em vermelho no metodo.









Com isso temos uma lógica simples mas funcional.
Logo Testar WebService novamente.

Logo clicamos na aplicar ConversionUnidades com o direito e logo IMPLANTAR.
Logo clicamos na aplicar ConversionUnidades com o direito e logo DEPURAR.
Para implantar a aplicação, isso deve ser feito pois apenas com a aplicação implantada vamos poder seguir criando um cliente (o cliente vai acessar nossa aplicação).
O cliente vai usar possivelmente uma direção igual a esta:


Agora vamos criar um cliente, para que aceda a nosso Serviço Web .

Para o mesmo vamos criar um novo projeto agora Java, JavaAplicacao.





Logo de criado nossa aplicação ClienteConversionUnidades, devemos criar nosso WebService, dentro da mesma.Para tanto clicamos com o botão Direito do mouse sobre o nome da nova aplicação ClienteConversionUnidades , clicamos em novo, outros, e selecionamos WebService, e ClienteParaWebService.
Logo devemos escolher o projeto Web para usar, recordamos que devemos esta com a aplica ao WEBSERVICE ConversionUnidades rodando, se não estiver rodando nosso servidor vai dar erro.



Logo:



clicamos em Procurar:




recordamos que usando NetBeans ele te ajuda a fazer parte do trabalho, então depois de tudo criado deve aparecer algo deste estilo na tela:




Então abrimos a aba Referencia de WebService, ConversionUnidades (que e a aplicação Web criada por nos), ConversionUnidades e logo aparecem nossos dois métodos criados:



então clicamos em PoleagadasACentimetros sem soltar e arrastamos para o main que esta no nosso projeto:



Deve aparecer algo como este que vemos na figura acima:

private static Double polegadasACentimetros(double polegadas) {
com.blog.rafacomjava.ConversionUnidades_Service service = new com.blog.rafacomjava.ConversionUnidades_Service();
com.blog.rafacomjava.ConversionUnidades port = service.getConversionUnidadesPort();
return port.polegadasACentimetros(polegadas);
}

este metodo cria, maslembro tem que arrastar, para que o netbeans crie uam serie de comandos, se simplesmente escrever isso na aplicação, quando rodar o sistema, vai dar erro de pacote invalido.

Caso igual apareca este erro:

Created dir: /home/rafael2/projetos2/soa/soa_blog/ClienteConversionUnidades/build/empty
Created dir: /home/rafael2/projetos2/soa/soa_blog/ClienteConversionUnidades/build/generated-sources/ap-source-output
Compiling 1 source file to /home/rafael2/projetos2/soa/soa_blog/ClienteConversionUnidades/build/classes
/home/rafael2/projetos2/soa/soa_blog/ClienteConversionUnidades/src/clienteconversionunidades/ClienteConversionUnidades.java:23: error: package com.blog.rafacomjava does not exist
com.blog.rafacomjava.ConversionUnidades_Service service = new com.blog.rafacomjava.ConversionUnidades_Service();
/home/rafael2/projetos2/soa/soa_blog/ClienteConversionUnidades/src/clienteconversionunidades/ClienteConversionUnidades.java:23: error: package com.blog.rafacomjava does not exist
com.blog.rafacomjava.ConversionUnidades_Service service = new com.blog.rafacomjava.ConversionUnidades_Service();
/home/rafael2/projetos2/soa/soa_blog/ClienteConversionUnidades/src/clienteconversionunidades/ClienteConversionUnidades.java:24: error: package com.blog.rafacomjava does not exist
com.blog.rafacomjava.ConversionUnidades port = service.getConversionUnidadesPort();
3 errors
/home/rafael2/projetos2/soa/soa_blog/ClienteConversionUnidades/nbproject/build-impl.xml:939: The following error occurred while executing this line:
/home/rafael2/projetos2/soa/soa_blog/ClienteConversionUnidades/nbproject/build-impl.xml:269: Compile failed; see the compiler error output for details.
FALHA NA CONSTRUÇÃO (tempo total: 0 segundos)

simplesmente vão à aba de pacotes código fonte da aplicação ClienteConversionUnidades, e vera que o NetBenas criou um pacote mais ou menos com este nome Códigos fontes gerados e logo, com.blog.rafacomjava, copie este pacote e cole em Pacotes Código Fonte, isso deve resolver o problema.

Na classe ClienteConversionUnidades(), metodo main escreva:

System.out.println(""+polegadasACentimetros(10.3));

a classe ClienteConversionUnidades deve ter este formato:



Com as seguintes informações:



/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package clienteconversionunidades;

/**
*
* @author rafael2
*/
public class ClienteConversionUnidades {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
System.out.println("Resultado = "+polegadasACentimetros(10.3));
}

private static Double polegadasACentimetros(double polegadas) {
com.blog.rafacomjava.ConversionUnidades_Service service = new com.blog.rafacomjava.ConversionUnidades_Service();
com.blog.rafacomjava.ConversionUnidades port = service.getConversionUnidadesPort();
return port.polegadasACentimetros(polegadas);
}
}


Com isso rode a classe e vera o resultado;

ant -f /home/rafael2/projetos2/soa/soa_blog/ClienteConversionUnidades -Djavac.includes=clienteconversionunidades/ClienteConversionUnidades.java -Drun.class=clienteconversionunidades.ClienteConversionUnidades run-single
init:
Deleting: /home/rafael2/projetos2/soa/soa_blog/ClienteConversionUnidades/build/built-jar.properties
deps-jar:
Updating property file: /home/rafael2/projetos2/soa/soa_blog/ClienteConversionUnidades/build/built-jar.properties
wsimport-init:
wsimport-client-ConversionUnidades:
files are up to date
wsimport-client-generate:
Compiling 1 source file to /home/rafael2/projetos2/soa/soa_blog/ClienteConversionUnidades/build/classes
compile-single:
run-single:
Resultado = 25.75
CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)



Com isso terminamos por enquanto nossa aplicação WebService, logo faremos expor nossos EJB.

Um grande abraço a todos!