Sunteți pe pagina 1din 55

1

TUTORIAL
ALBERTOHENRIQUESOUSA

CRIAODEPROJETOSWEBCOMJAVA,FLEXEEASYWEB1.8
UBERABA 2010

Introduo
Objetivo
CriarumprojetoWEBcomJava,FlexeEasyWebparacadastramentodeusurios,ondeser informadoapenasocdigoenomedosusurios. Tecnologiasutilizadas

Eclipse Galileo MySQL 5.0 Adobe Flash Builder 4.0.1 Hibernate Tools 3.2.4 Easy Web 1.8.1 Sysdeo Tomcat 3.2.1 Adobe Flex SDK 4.0.0 VRaptor 2.5.1 BlazeDs 3.2.0 Tomcat 6.0.16

Acessoaosdados

Sero demonstradas duas formas de acesso aos dados, a primeira realizada por serializao de XML com o uso do framework VRaptor e a segunda por serializao de objetos (Remote Object) com o framework BlazeDs.
Armazenamentodosdados

O banco de dados utilizado nesse tutorial o MySQL, crie um banco chamado tutorial com uma tabela usuarios, conforme script abaixo: CREATE DATABASE `tutorial` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; CREATE TABLE `usuarios` ( `ID` INTEGER(11) NOT NULL AUTO_INCREMENT, `NOME` VARCHAR(50) COLLATE utf8_general_ci DEFAULT NULL, PRIMARY KEY (`ID`)) ENGINE=InnoDB

CriandoprojetoJava
ApsacriaodobancodedadosetabelaexecuteoEclipseparacriaodoprojeto.

4 Em"File>New>Other..."escolhaaopo"Java>Tomcat

5 Informeonomedoprojetoeapastadelocalizao.

Para criao desse projeto foi utilizado o plugin "Tomcat Sysdeo", o projeto criado com a estrutura bsica. A estrutura de visualizao no Package Explorer est vinculada a perspectiva utilizada, que a perspectiva Java (Canto superior direito do Eclipse), a perspectiva pode ser alterada em "Window -> Open Perspective".

7 DefinaoTextfileencodingdoprojetocomoUTF8,cliquecomobotodireitodomouseno projeto"treinamento"evem"Properties".

AplicandooEasyWeb
Agora vamos aplicar o "Easy Web" em nosso projeto recm criado, o Easy Web ir complementar o projeto para que o mesmo possa ser utilizado com o VRaptor e BlazeDs, gerando os cdigos e configuraes iniciais.

Escolha o "Container" correspondente ao projeto "treinamento", e altere os Package: DAO, Logic e Remote. Modifique esses pacotes para: br.com.codiub.treinamento

10 Alguns erros sero gerados aps a aplicao do "Easy Web", isso ocorre devido a no localizaodospacotes(*.jar)referenciadosnosmdulosgerados.

11 Faavinculaodospacotes(*.jar)noprojeto.Cliquecomobotodireitodomousenoprojeto "treinamento"evemProperties.

12 Selecionetodosos".jar"dapasta"lib"em"AddJARs...".

13

Apsavinculaooprojetonoircontererros.

14

MapeamentodetabelanoHibernateTools
O Hibernate Tools gera as classes de mapeamento com o banco de dados e tabelas, para conexo do Hibernate com o banco de dados necessrio configurar o arquivo "hibernate.cfg.xml".

ConfigureaURLdeconexo"hibernate.connection.url",informe: <propertyname="hibernate.connection.url">jdbc:mysql://localhost/tutorial</property> localhost=servidorlocal tutorial=Nomedobancodedados Ousurioesenhadeacessoaobancosodefinidosem: "hibernate.connection.username"e"hibernate.connection.password"

15 Iremosagoracriarum"ConsoleConfiguration"queoresponsvelpelacriaodasclassesde mapeamento.

16 Informeo"Propertyfile"e"Configurationfile"conformefiguraabaixo.

17 Oconsolenoestvisvel,poistemosquealteraraperspectiva,iremosutilizaraperspectiva doHibernate,vem"Window>OpenPerspective"eescolha"Hibernate".

Paragerarasclassesiremosutilizaro"HibernateCodeGeneration",vem"Run>Hibernate CodeGeneration>OpenHibernateCodeGenerationDialog..."

18 Cliquecomobotodireitodomouseem"HibernateCodeGeneration"eescolhaaopo "New".

19 Escolha o treinamento em Console configuration, selecione a pasta src do projeto em Output directory, habilite a opo Reverse enginner from JDBC Connection, informe o pacotedaoemPackageeinformeoarquivodeengenhariareversaemreveng.xml.Para criaroarquivoreveng.xmlcliquenobotoSetup.

ApsclicarnobotoSetupescolhaaopoCreatenew....

20 Crieoarquivonapasta"src"de"WEBINF".

CliqueemNext>paraselecionaratabela.

21 Cliquenoboto"Refresh"paraleituradobancoetabelas,depoisselecioneatabela"usuarios" ecliqueem"Include...".

22 Agoraoarquivoreveng.xmlestcriadoeselecionado.

23 Naaba"Exporters"marqueasopesconformeafiguraabaixo.

Marqueasopes:Domaincode(.java),HibernateXMLMappings(.hbm.xml)eHibernate XMLConfiguration(.cfg.xml). Cliqueem"Run"paragerarasclassesdemapeamento,depoisretorneparaperspectivaJava.

24 O Hibernate gerou os arquivos: Usuarios.java e Usuarios.hbm.xml no pacote dao, hibernate.reveng.xml na pasta src e modificou o arquivo hibernate.cfg.xml tambm da pastasrc.

25 Oarquivohibernate.cfg.xmlutilizadosomenteparaqueoHibernatepossarealizaraleitura e gerar as classes Java necessrias, para publicao (deploy) de nosso projeto no servidor o arquivo hibernate.cfg.xml no ser utilizado, em seu lugar iremos utilizar o hibernate.production.cfg.xml. O projeto utilizauma dataSourceJNDI (Java Naming and Directory Interface)que permite a conexocomobancodedados.Abraoarquivohibernate.production.cfg.xml

Estearquivoaocontrriodohibernate.cfg.xmlnopossuiaconfiguraodeURL,usurioe senha de acesso ao banco, essas configuraes sero em outro arquivo que ser visto no prximo tpico Configurando o projeto para deploy no Tomcat, iremos utilizar uma configuraonodatasource,informe: <propertyname="connection.datasource">java:comp/env/jdbc/treinamento</property> treinamento=onomeparaonossodatasource

26 AlmdessaconfiguraonecessrioinformarosarquivosXMLgeradospelomapeamentodo HibernateTools,essainformaoestnoarquivohibernate.cfg.xml.

Copieessalinhadeconfiguraoecolenoarquivohibernate.production.cfg.xml.

27 Pronto,oarquivodeconfiguraodepublicao(deploy)doHibernateestconfigurado.

ConfigurandooprojetoparadeploynoTomcat
Para realizar o deploy da nossa aplicao iremos configurar o "context.xml" e "web.xml". O "context.xml"irconterasconfiguraesdeconexocomobancodedados.

Substitua: <Contextpath=/projectreloadable=truedocBase=projectworkDir=project/work> Por: <Contextpath=/treinamentoreloadable=truedocBase=C:\Documentsand Settings\usuario\workspace\treinamentoworkDir=C:\Documentsand Settings\usuario\workspace\treinamento\work> Substitua em Resource name o nome jdbc/database por jdbc/treinamento, esse o mesmonomeutilizadonoarquivohibernate.production.cfg.xml. ConfigureaURLdeconexo,sendo: url="jdbc:mysql://localhost:3306/tutorial?autoReconnect=true" tutorial=nomedobancodedados

28 Oarquivo"web.xml"irconterareferncia"jdbc/treinamento"definidano"context.xml". Substitua: <resrefname>jdbc/database</resrefname> Por: <resrefname>jdbc/treinamento</resrefname>

29 O arquivo "context.xml" ser lido pelo Tomcat quando o projeto estiver dentro da pasta "webapps"(pastadeprojetosdoTomcat),seoprojetoestiveremoutrapastasernecessrio copiar o "context.xml" para pasta "conf>Catalina>localhost", exclua o arquivo treinamento.xml,renomeioarquivocontext.xmlparatreinamento.xml.

Faaaediodoarquivo"treinamento.xml"econfigureo"docBase"e"workDir",conformea pastadelocalizaorealdoprojeto.

30

Criandoumaclasseparatratamentodedadoscom VRaptor
Antes da criao da classe necessrio incluir o mtodo "get" para acesso a classe de mapeamento da tabela "usuarios", faa a edio do "DaoFactory.java" do pacote dao e incluaomtodoconformefiguraabaixo.

Acodificao:
public Dao<Usuarios> getUsuariosDao() { return new Dao<Usuarios>(this.session, Usuarios.class); }

Apsadigitaodoblocodecodificao,tecleCtrl+Shift+OparareorganizarosImports.

31 AgoravamoscriaraclassecomaajudadoEasyWeb. SelecioneopacotelogicdoprojetoedepoisemFile>New>Other....

32 EmEasyWebescolhaaopoVRaptorLogic.

CliqueemNext>.

33 Como padro o nome do arquivo fonte tem que conter a palavra "Logic" (UsuariosLogic.java),"@component"nomeutilizadoparamapeamentodeurlpeloVRaptor, e "Class Hibernate" o nome da classe da tabela gerado pelo Hibernate. A lista de campos (fields)serutilizadaparamontagemdoXML.

34 OEasyWebirgerarocdigopadro.

35 Omapeamentodaurldaclassegeradarealizadaatravsdo"views.properties"(pastasrc), os mtodos pblicos gerados na classe so: findAll, save e delete. O VRaptor utiliza o mapeamento "ok" e "invalid" para cada mtodo, a sintaxe completa : <@component>.<method>.<ok/invalid> = <url>. Como padro utilizado um nico redirecionamento "client/default/list.ok.jsp", tanto para sucesso (ok) ou erro (invalid) na execuodomtodo.

36

Criandoumaclasseparatratamentodedadoscom BlazeDs
Com o VRaptor ns criamos a classe de manipulao de dados, porm a comunicao realizada atravs de serializao de XML para requisies e respostas, com o BlazeDs a comunicao realizada atravs de transferncia de objetos (Remote Object), o Java e Flex iro ler e enviar objetos que sero compartilhados. O remote object possui uma melhor desempenhoemaissegurananatransmissodedados. VamosutilizaroEasyWebparacriarnossaclasse. SelecioneopacoteremotedoprojetoedepoisemFile>New>Other....

37

CliqueemNext>.

38 A exemplo das classes do VRaptor no uso da palavra "Logic", aqui vamos utilizar a palavra "Remote"(UsuariosRemote.java).

39 OEasyWebircriaraclasse.

40 Omapeamentodaclasserealizadanoarquivo"remotingconfig.xml"(pastaWEBINF/flex).

TeremosquereferenciarcadaclassegeradanoremoteparausonoFlex.

41

Startnoprojeto
OprojetoJavaestprontoparafuncionar,bastaagoradarumstartnoTomcat,cliqueno botoStartTomCatnabarradeferramentasdoEclipse.

AsmensagensgeradaspeloTomcatseroenviadasparaoConsoledoEclipse.

42

CriandooprojetoFlex
AgorairemoscriaroprojetoemFlexparapermitiraousuriointeragircomnossoprojetoem Java.VemFile>New>Others....

CliqueemNext>.

43 Onossoprojetoteronomede"treinamentoFlex".

EmApplicationServertypeinformeOther.

44 Clique em "Next >" para configurar o "Output folder", iremos escolher a pasta raiz do nosso projetoJavaparaarmazenaro"swf"geradopeloFlex.

45 Cliqueem"Next>"paraadicionaremLibrarypathoframework(ASController),cliquenoboto "AddSWC"naabaLibrarypatheinformealocalizaodoarquivo.
G:/EQ08/sistemas internet/tomcat/easywebtools/ASController/bin/ascontroller.swc

EmOutputfolderURLinforme:http://localhost:8080/treinamento

46 UmnovoprojetoflexestcriadoedisponvelemnossaWorkspace.

47

CriandoformulrionoprojetoFlex,conexoXML
Vamos criar o formulrio para interagir com nossa classe "UsuariosLogic".

SelecioneapastasrcdoprojetoedepoisemFile>New>Other....

48 SelecioneaopoFlexForm.

49 Escolhaotemplate"CRUDTitleWindowXML"(CRUD=Create,Read,Update,Delete)do qualirutilizaroHttpServiceparacomunicaocomoJava.

50 Com formulrio criado iremos editar o "flex.service.url.xml" (pasta src) para configurar os caminhos(url)dechamadadosmtodosdaclasse"UsuariosLogic".

Aconfiguraofica:
<usuariosXMLFind>http://localhost:8080/treinamento/usuarios.findAll.lo gic</usuariosXMLFind> <usuariosXMLSave>http://localhost:8080/treinamento/usuarios.save.logic </usuariosXMLSave> <usuariosXMLDelete>http://localhost:8080/treinamento/usuarios.delete.l ogic</usuariosXMLDelete>

51 Faaaediodoarquivo"treinamentoFlex.mxml"parachamadadonossoformulrio.

Codificao:
<mx:Script> <![CDATA[ import frmusuariosXML.usuariosXML; ]]> </mx:Script> <mx:Button x="25" y="22" label="Usurios XML" click="{frmusuariosXML.usuariosXML.show();}"/>

52 SelecioneoprojetotreinamentoFlexvnomenuRuneselecioneaopoRunoutecle Ctrl+F11

Faaostestesdeincluso,edioeexclusonoformulrio.

53

CriandoformulrionoprojetoFlex,conexoRemote Object
Para acesso com Remote Object necessrio configurar o "Flex Compiler" do projeto Flex. Cliquecomobotodireitodomousenoprojeto"treinamento"evem"Properties". Informeosargumentos: services"../../treinamento/WEBINF/flex/servicesconfig.xml"contextroot"treinamento" compiler.optimize=truecompiler.debug=false Em "services" informe o caminho de localizao do arquivo "servicesconfig.xml", em " contextroot"informeonomedoprojetodepublicaonoTomcat"treinamento".

54 Agora podemos criar nosso formulrio, o processo de criao o mesmo utilizado no formulrioanterior,pormotemplateutilizadoagorao"CRUDTitleWindowRemote".

55 Faaachamadadoformulriono"treinamentoFlex.mxml".

Codificao:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600"> <mx:Script> <![CDATA[ import frmusuariosRemote.usuariosRemote; import frmusuariosXML.usuariosXML; ]]> </mx:Script> <mx:Button x="25" y="22" label="Usurios XML" click="{frmusuariosXML.usuariosXML.show();}"/> <mx:Button x="25" y="52" label="Usurios Remote" click="{frmusuariosRemote.usuariosRemote.show()}"/> </mx:Application>

EtapaFinal
Executeoprojetoefaaostestesdeincluso,edioeexclusonosformulrios.

S-ar putea să vă placă și