Sie sind auf Seite 1von 48

[1]

Tecnologias de desenvolvimento em Java


Reinaldo Gil Lima de Carvalho

Junho 2012

Sumrio a
Sumrio a 1 Sistema Operacional 1.1 Debian GNU/Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 JVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Ambiente de Desenvolvimento J2EE 2.1 Eclipse . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 Download . . . . . . . . . . . . . . . . . 2.1.2 Instalao . . . . . . . . . . . . . . . . . ca 2.1.3 Ps-instalaao . . . . . . . . . . . . . . . o c 2.2 Maven Integration for WTP . . . . . . . . . . . 2.2.1 Instalao . . . . . . . . . . . . . . . . . ca 2.2.2 Ps-instalaao . . . . . . . . . . . . . . . o c 2.3 JbossTools . . . . . . . . . . . . . . . . . . . . . 2.3.1 Instalao . . . . . . . . . . . . . . . . . ca 2.4 Jboss AS . . . . . . . . . . . . . . . . . . . . . . 2.4.1 Download . . . . . . . . . . . . . . . . . 2.4.2 Instalao . . . . . . . . . . . . . . . . . ca 2.4.3 Ps-instalaao . . . . . . . . . . . . . . . o c 2.5 SCM . . . . . . . . . . . . . . . . . . . . . . . . 2.6 Framework Demoiselle . . . . . . . . . . . . . . 2.6.1 Demoiselle Maven Catalog . . . . . . . . 2.6.2 Congurando o catlogo de archtipos no a e 2.6.3 Novo projeto Maven . . . . . . . . . . . 2.6.4 Publicando a aplicaao . . . . . . . . . . c 2.6.5 Acessando a aplicaao . . . . . . . . . . c 3 Congurao do Projeto ca 3.1 JPA . . . . . . . . . . 3.1.1 Driver JDBC . 3.1.2 Data Source . . 3.1.3 Persistence . . Referncias Bibliogrcas e a A JBoss AS 6 A.1 Instalao . . . . . . ca A.1.1 Download . . A.1.2 Instalaao . . c A.1.3 Ps-instalao o ca 2 4 4 4 5 5 5 6 6 8 8 9 11 11 13 13 13 13 17 20 20 20 21 22 22 23 23 23 23 23 25 26 26 26 26 27 2

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Eclipse . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

Tecnologias de Desenvolvimento J2EE

Tecnologias J2EE

Sumrio a 28 29 31 31 31 31 31 32 33 33 33 34 35 37 37 37 37 39 39 41 42 42 43 44

A.1.4 Inicializaao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . c A.2 Proxy Fron-end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B GlassFish 2 B.1 Instalaao . . . . . . . . . . . . . c B.1.1 Download . . . . . . . . . B.1.2 Instalao . . . . . . . . . ca B.1.3 Ps-instalaao . . . . . . . o c B.1.4 Inicializao . . . . . . . . ca B.1.5 Problemas . . . . . . . . . B.2 Publicaao de Aplicao (Deploy) c ca B.2.1 Pool de conexo . . . . . . a B.2.2 JDBC . . . . . . . . . . . B.2.3 Deploy . . . . . . . . . . . C GlassFish 3.1.1 C.1 Instalaao . . . . . . . . . . . . . c C.1.1 Download . . . . . . . . . C.1.2 Instalaao . . . . . . . . . c C.1.3 Ps-instalaao . . . . . . . o c C.1.4 Inicializaao . . . . . . . . c C.1.5 Problemas . . . . . . . . . C.2 Publicaao de Aplicaao (Deploy) c c C.2.1 Pool de conexo . . . . . . a C.2.2 JDBC . . . . . . . . . . . C.2.3 Deploy . . . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

D Firewall 46 D.1 Logs no console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 D.2 Congurao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 ca D.3 FTP Conntrack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 E Licena c 48 E.1 Documentaao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 c

Reinaldo de Carvalho - reinaldoc@gmail.com

Cap tulo 1 Sistema Operacional


1.1 Debian GNU/Linux

Os sistemas operacionais baseados em tecnologias livres tendem a fornecer um utilitrio que realiza a instalaoes automatizadas, sendo no Debian [2] utilizado o aptitude. c Ao realizar a instalaao de um determinado software, este informa ao aptitude quais bibliotecas c so necessrias para o seu funcionamento (dependncias) e quais so recomendadas, sendo que estas a a e a no so essenciais para a execuo do software principal. a a ca Por padro, ambos conjuntos de bibliotecas sero instalados, todavia isto induz a utilizaao a a c de espao em disco adicional e a presena de servios que no sero utilizados. Pode-se desabilc c c a a itar a instalao de software recomendado atravs da adio da seguinte conguraao ao arquivo ca e ca c /etc/apt/apt.conf: Apt::Install-Recommends "false"; Caso a conectividade seja fornecida por um proxy via http, a seguinte congurao deve ser ca adicionada ao arquivo /etc/apt/apt.conf, com a devida adequaao ao endereo IP do proxy: c c Acquire::http::Proxy "http://192.168.0.1:3128"; O utilitrio aptitude tambm requer a conguraao da fonte do software a ser instalado, e isto a e c e realizado no arquivo /etc/apt/sources.list, conforme indicado a seguir:. deb http://security.debian.org/ squeeze/updates main contrib non-free deb http://ftp.br.debian.org/debian/ squeeze main contrib non-free deb http://ftp.br.debian.org/debian/ squeeze-updates main contrib non-free Aps a denio das fontes, necessrio o download da lista de software dispon o ca e a vel, e posterior atualizaao do sistema: c # aptitude update # aptitude safe-upgrade

1.2

JVM

A mquina virtual Java essencial para a execuao dos aplicativos Java. A instalaao pode ser a e c c realizada conforme indicado: # aptitude install sun-java6-jdk libaio1

Tecnologias de Desenvolvimento J2EE

Cap tulo 2 Ambiente de Desenvolvimento J2EE


O ambiente de desenvolvimento formado por um conjunto de programas dispon e veis atravs de e licenas livres, que permitem a codicaao de sistemas utilizando tecnologias J2EE e de ferramentas c c que aumentam a produtividade. Eclipse Indigo SR1 v3.7.1; Maven Intergration for Web Tools Platform; JbossTools v3.3.0-M5; Jboss AS v6.1.0 Final; Demoiselle 2.2.0 (Maven archetypes; JARs;);

2.1

Eclipse

Os procedimentos indicados neste cap tulo centralizam a instalao do conjunto de programas que ca formam o ambiente de desenvolvimento no diretrio /opt/eclipse, possibilitando a replicaao deste o c ambiente de forma gil, podendo-se copiar este diretrio para outra estao de trabalho. a o ca requisito m E nimo a existncia de 2Gb de memria RAM. e o

2.1.1

Download

O Eclipse IDE for Java Developers esta dispon em www.eclipse.org, cuja verso atual : vel a e eclipse-java-indigo-SR1-linux-gtk.tar.gz

Figura 2.1: Eclipse download - www.eclipse.org/downloads

Tecnologias de Desenvolvimento J2EE

Tecnologias J2EE

Cap tulo 2. Ambiente de Desenvolvimento J2EE

2.1.2

Instalao ca

Os procedimentos para instalao so indicados a seguir: ca a # cd /opt # tar xzf /path/to/eclipse-java-indigo-SR1-linux-gtk.tar.gz # chown -R johndoe: eclipse Substitua o termo johndoe pelo usurio que executar o eclipse. Isto necessrio neste momento a a e a para que o Eclipse tenham permisso para instalar os programas adicionais no diretrio /opt/eclipse, a o ao invs de instalados em /.eclipse. Posteriormente pode-se alterar a permisso deste diretrio. e a o

2.1.3

Ps-instalao o ca

O procedimento para a conguraao de maior uso de memria e consequente melhora no desempenho c o do Eclipse, indicado a seguir: e /opt/eclipse/eclipse.ini: incremente os parmetros como indicado a seguir. a -XX:MaxPermSize=512m -Xms512m -Xmx1024m E necessrio a execuao do Eclipse para proceder a instalaao dos demais programas, para isto inia c c cialize o eclipse atravs do executvel /opt/eclipse/eclipse, e selecione o diretrio (/opt/eclipse/ e a o workset/workspace) onde os projetos sero armazenados (workspace). a

Figura 2.2: Denindo workspace: /opt/eclipse/workset/workspace

A conguraao de proxy poder ser realizada como demonstrado a seguir: c a acesse o menu: Window => Preferences => General => Network Connections; selecione em Active Provder a opao Manual; c
Reinaldo de Carvalho - reinaldoc@gmail.com

Tecnologias J2EE

Cap tulo 2. Ambiente de Desenvolvimento J2EE

para cada schema (HTTP, HTTPS, SOCKS), selecione-o e clique em Edit; preencha adequadamente IP/host do servio de proxy e clique em OK; c Clique em OK novamente para concluir a conguraao; c

Figura 2.3: Congurando Proxy

Reinaldo de Carvalho - reinaldoc@gmail.com

Tecnologias J2EE

Cap tulo 2. Ambiente de Desenvolvimento J2EE

2.2

Maven Integration for WTP

O suporte ao Apache Maven fornecido ao Eclipse atravs do componente Maven Integration for e e WTP (m2e-wtp).

2.2.1

Instalao ca

A instalaao realizada atravs do Eclipse, como indicado: c e e acesse o menu: Help => Eclipse Marketplace...; digite o termo maven para a pesquisa; clique em Go; identique o item Maven Integration for Eclipse WTP e clique em Install;

Figura 2.4: Instalao do Maven (m2e-wtp) ca

Na nova janela, realize os seguintes procedimentos: identique os items selecionados; clique em Next; verique os termos da licena de uso e caso concorde, selecione: I accept the terms of the c license agreements; clique em Finish; Aguarde o download, o acesso pode ser lento e este processo pode demorar; Aps a concluso da instalaao, ser solicitado para reiniciar o Eclipse; o a c a

Reinaldo de Carvalho - reinaldoc@gmail.com

Tecnologias J2EE

Cap tulo 2. Ambiente de Desenvolvimento J2EE

Figura 2.5: Instalao do Maven (m2e-wtp) ca

2.2.2

Ps-instalao o ca

O procedimento a seguir tem objetivo de alterar o diretrio do repositrio local do Maven de o o /.m2 para /opt/eclipse/workset/maven, e se necessrio, congurar o uso de proxy para acesso aos a repositrios remotos. o Ateno: o usurio que esta executando o Eclipse precisa de permisso de escrita neste diretrio. ca a a o Realize os procedimentos a seguir com este usurio, ou seja, no use o root. a a $ mkdir -p /opt/eclipse/workset/maven/repository $ ln -s /opt/eclipse/workset/maven/repository ~/.m2 /opt/eclipse/workset/maven/settings.xml: crie o arquivo de conguraao com o modelo c indicado abaixo, e caso necessrio uso de proxy, descomente e adapte a conguraao. a c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <localRepository>/opt/eclipse/workset/maven/repository</localRepository> <!-<proxies> <proxy> <active>true</active> <protocol>http</protocol> <username>proxyuser</username> <password>proxypass</password> <host>192.168.0.1</host> <port>3128</port> <nonProxyHosts>local.net|example.com</nonProxyHosts> </proxy>
Reinaldo de Carvalho - reinaldoc@gmail.com

Tecnologias J2EE

Cap tulo 2. Ambiente de Desenvolvimento J2EE

17 18 19 20 21 22 23 24 25 26 27 28

<proxy> <active>true</active> <protocol>https</protocol> <username>proxyuser</username> <password>proxypass</password> <host>192.168.0.1</host> <port>3128</port> <nonProxyHosts>local.net|example.com</nonProxyHosts> </proxy> </proxies> --> </settings> E necessrio indicar no Eclipse o uso do novo arquivo de congurao do maven (m2e-wtp), como a ca indicado: acesse o menu: Window => Preferences => Maven => User Settings congure a opo User Settings para: /opt/eclipse/workset/maven/settings.xml. ca clique em Apply; o Eclipse deve ser reiniciado (ignore o download do ndice exibido na view Progress);

Figura 2.6: Maven settings

Reinaldo de Carvalho - reinaldoc@gmail.com

10

Tecnologias J2EE

Cap tulo 2. Ambiente de Desenvolvimento J2EE

2.3

JbossTools

O JbossTools um conjunto de ferramentas que aprimoram o desenvolvimento de sistemas, como: e Integrao do Eclipse com o JBoss Application Server, permitindo rpido deploy de aplicaoes ca a c em desenvolvimento na mquina local; a Adiciona suporte a procedimentos de debug integrado ao JBoss Application Server; Inclui a perspectiva Web Development que permite acesso rpido as bibliotecas incorporadas a ao projeto via Maven, e uma disposiao agil das classes Java; c Demais componentes;

2.3.1

Instalao ca

A instalaao realizada atravs do Eclipse, como indicado: c e e acesse o menu: Help => Eclipse Marketplace...; digite o termo jboss para a pesquisa; clique em Go; identique o item JBoss Tools (Indigo) e clique em Install;

Figura 2.7: JbossTools install

Na nova janela, realize os seguintes procedimentos: identique os items selecionados; clique em Next;

Reinaldo de Carvalho - reinaldoc@gmail.com

11

Tecnologias J2EE

Cap tulo 2. Ambiente de Desenvolvimento J2EE

verique os termos da licena de uso e caso concorde, selecione: I accept the terms of the c license agreements; clique em Finish; Aguarde o download, o acesso pode ser lento e este processo pode demorar;

Figura 2.8: JbossTools install

Reinaldo de Carvalho - reinaldoc@gmail.com

12

Tecnologias J2EE

Cap tulo 2. Ambiente de Desenvolvimento J2EE

2.4
2.4.1

Jboss AS
Download

Figura 2.9: Jboss AS download - http://www.jboss.org/jbossas

http://www.jboss.org/jbossas/downloads

2.4.2

Instalao ca

Os procedimentos para instalao so indicados a seguir: ca a Ateno: este procedimento pode ser realizado com o usurio que esta executando o Eclipse, ou ca a seja, no requer o root. a $ cd /opt/eclipse/workset $ unzip /path/to/jboss-as-distribution-6.1.0.Final.zip

2.4.3

Ps-instalao o ca

A conguraao realizada atravs do Eclipse, como indicado: c e e acesse o menu: Window => Open Perspective => Web Development; no conjunto inferior de abas, selecione Servers; clique com boto contrrio do mouse na area branca interna a aba Servers; a a selecione o menu New => Server;

Reinaldo de Carvalho - reinaldoc@gmail.com

13

Tecnologias J2EE

Cap tulo 2. Ambiente de Desenvolvimento J2EE

Figura 2.10: Integrando Eclipse com JbossAS

Na janela seguinte, realize os seguintes procedimentos: selecione a opo em server type: JBoss AS 6.x, e clique em Next; ca indique o diretrio na opo Home Directory: /opt/eclipse/workset/jboss-6.1.0.Final; o ca clique em Finish;

Figura 2.11: Selecionando verso e diretrio de instalaao do JbossAS a o c

Reinaldo de Carvalho - reinaldoc@gmail.com

14

Tecnologias J2EE

Cap tulo 2. Ambiente de Desenvolvimento J2EE

Agora, sugere-se que a publicaao (deploy) automtica seja desativada para evitar que um novo c a deploy seja realizado para cada arquivo salvo. Siga os seguintes procedimentos: identique a nova instncia JBoss 6.x Runtime Server na aba Servers; a clique com boto contrrio do mouse na instncia e selecione no menu a opao Open; a a a c no wizard, identique a seao Publishing, e selecione: never publish automatically; c salve a conguraao (Ctrl+S); c

Figura 2.12: Desabilitando publicao (deploy) automtico ca a

Sugere-se que o diretrio de publicaao (deploy) seja alterado, pois casos expordicos o diretrio o c a o padro dentro do workspace no aceita republicao. Siga os seguintes procedimentos ainda no a a ca wizard de conguraao do servidor de aplicaes: c co selecione a subaba Deployment na parte inferior do wizard; identique a seo Default Settings, e selecione: Use the JBoss deploy folder; ca salve a conguraao (Ctrl+S); c A partir das congurao supramencionadas, o diretrio de publicao ser: /opt/eclipse/workset/ ca o ca a jboss-6.1.0.Final/server/default/deploy.

Reinaldo de Carvalho - reinaldoc@gmail.com

15

Tecnologias J2EE

Cap tulo 2. Ambiente de Desenvolvimento J2EE

Figura 2.13: Alterando diretrio de publicao (deploy) o ca

Reinaldo de Carvalho - reinaldoc@gmail.com

16

Tecnologias J2EE

Cap tulo 2. Ambiente de Desenvolvimento J2EE

2.5

SCM

Sistemas de controle de verso permitem o controle sobre as alteraes de documentos, incluindo a co cdigo fonte de software, e tem a funo de repositrio centralizado destes arquivos. Cada alteraao o ca o c identicada com autor e descrio, permitindo o mapeamento do histrico das evolues do software. e ca o co Implementaes populares como CVS, Subversion e Git so suportados pelo eclipse. Enquanto o co a suporte ao Git, provido pelo plugin E-Git, instalado simultaneamente ao Jboss Tools, o suporte ao e Subversion pode ser adicionado atravs do plugin Subclipse. e acesse o menu: Help => Eclipse Marketplace...; digite o termo subclipse para a pesquisa, e clique em Go; identique o item Subclipse e clique em Install;

Figura 2.14: Instalaao do Subclipse c

Na nova janela, realize os seguintes procedimentos: identique os items selecionados, e clique em Next; verique os termos da licena de uso e caso concorde, selecione: I accept the terms of the c license agreements; clique em Finish; Aguarde o download, e aps a concluso da instalaao, reinicie o Eclipse; o a c

Reinaldo de Carvalho - reinaldoc@gmail.com

17

Tecnologias J2EE

Cap tulo 2. Ambiente de Desenvolvimento J2EE

Figura 2.15: Instalaao do Subclipse c

Projetos que utilizam Maven em seu gerenciamento, podem ser importados diretamente como um projeto Maven a partir de um sistema de controle de verso. O maven prov esta funcionalidade a e atravs de conectores espec e cos para cada implementaao de controle de verso, como o m2e-egit c a para Git. acesse o menu: Window => Preferences => Maven => Discovery; clique em Open Catalog; selecione os items compat veis com os sistemas de controle de verso de seu interesse; a clique em Finish;

Figura 2.16: Instalaao da integraao do maven com SCM c c

Reinaldo de Carvalho - reinaldoc@gmail.com

18

Tecnologias J2EE

Cap tulo 2. Ambiente de Desenvolvimento J2EE

identique os items selecionados, e clique em Next; verique os termos da licena de uso e caso concorde, selecione: I accept the terms of the c license agreements; clique em Finish; Aguarde o download, e aps a concluso da instalaao, reinicie o Eclipse; o a c

Figura 2.17: Instalaao da integraao do maven com SCM c c

Reinaldo de Carvalho - reinaldoc@gmail.com

19

Tecnologias J2EE

Cap tulo 2. Ambiente de Desenvolvimento J2EE

2.6

Framework Demoiselle

O Framework demoiselle formado por: archtipos do maven que esto listados no catlogo (archetypee e a a catalog.xml) fornecido pelo projeto; e bibliotecas (jars) que fornecem classes comuns que permitem o desenvolvimento agil de aplicaoes. Os principais componentes so: demoiselle-core, demoiselle-jsf, c a demoiselle-jpa, demoiselle-junit e demoiselle-report.

2.6.1

Demoiselle Maven Catalog

O catlogo de archtipos do projeto demoiselle pode ser obtido em: a e http://demoiselle.sourceforge.net/repository/archetype-catalog.xml

2.6.2

Congurando o catlogo de archtipos no Eclipse a e

acesse o menu: Window => Preferences => Maven => Archetypes clique em Add Remote Catalog...; indique na opo Catalog File a URL para o catlogo de archtipos; ca a e identique o catlogo de archtipos na opao Description como: Demoiselle; a e c clique em Verify; verique o nmero de archtipos encontrados, exemplo: Found 32 archetype(s); u e Clique em OK, e clique novamente em OK;

Figura 2.18: Maven catalog

Ateno: esta congurao ser salva em seu workspace (/workspace/.metadata/.plugins/ ca ca a org.maven.ide.eclipse/archetypesInfo.xml), e dever ser refeita no caso de uso de outro workspace. a
Reinaldo de Carvalho - reinaldoc@gmail.com

20

Tecnologias J2EE

Cap tulo 2. Ambiente de Desenvolvimento J2EE

2.6.3

Novo projeto Maven

acesse o menu: File => New => Project;

Figura 2.19: Novo projeto Maven

Figura 2.20: Novo projeto Maven

Reinaldo de Carvalho - reinaldoc@gmail.com

21

Tecnologias J2EE

Cap tulo 2. Ambiente de Desenvolvimento J2EE

2.6.4

Publicando a aplicao ca

Figura 2.21: Novo projeto Maven

2.6.5

Acessando a aplicao ca

Figura 2.22: Novo projeto Maven

Reinaldo de Carvalho - reinaldoc@gmail.com

22

Cap tulo 3 Congurao do Projeto ca


3.1
3.1.1

JPA
Driver JDBC

http://dev.mysql.com/downloads/connector/j/ http://jdbc.postgresql.org/download.html http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html

3.1.2

Data Source

<?xml version="1.0" encoding="UTF-8"?> <datasources> <local-tx-datasource> <jndi-name>exampleDS</jndi-name> <connection-url>jdbc:mysql://localhost:3306/exampledb</connection-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <user-name>exampleuser</user-name> <password>123456</password> <metadata> <type-mapping>mySQL</type-mapping> </metadata> </local-tx-datasource> </datasources>

3.1.3

Persistence

<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> <persistence-unit name="bookmark-ds" transaction-type="RESOURCE_LOCAL"> <non-jta-data-source>java:/exampleDS</non-jta-data-source> <class>com.example.javaweb.projetojsf.domain.Bookmark</class> <properties> <property name="hibernate.show_sql" value="true"/>
Tecnologias de Desenvolvimento J2EE

23

Tecnologias J2EE

Cap tulo 3. Congurao do Projeto ca

<property name="hibernate.format_sql" value="false"/> <property name="hibernate.hbm2ddl.auto" value="update"/> <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/> <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect"/> </properties> </persistence-unit> </persistence>

Reinaldo de Carvalho - reinaldoc@gmail.com

24

Referncias Bibliogrcas e a
[1] Website Logo. Java logo (image). content/uploads/2011/08/java logo2.jpg. [2] Debian. Debian site. 2009. http://www.debian.org. 2012. http://www.gemind.com.br/wp-

Tecnologias de Desenvolvimento J2EE

25

Apndice A e JBoss AS 6
A.1
A.1.1

Instalao ca
Download

O instalador do JBoss AS 6 (6.1.0.Final) pode ser obtido no seguinte endereo: c http://www.jboss.org/jbossas/downloads http://ufpr.dl.sourceforge.net/project/jboss/JBoss/JBoss-6.1.0.Final/jboss-as-distribution-6.1.0. Final.zip

Figura A.1: www.jboss.org

A.1.2

Instalao ca

Os passos abaixo descrevem a instalaao do servidor de aplicao: c ca # # # # cd /opt wget http://ufpr.dl.sourceforge.net/.../jboss-as-distribution-6.1.0.Final.zip unzip jboss-as-distribution-6.1.0.Final.zip chown -R root: /opt/jboss-6.1.0.Final

Tecnologias de Desenvolvimento J2EE

26

Tecnologias J2EE

Apndice A. JBoss AS 6 e

A.1.3

Ps-instalao o ca

Procedimentos ps-instalao: o ca # # # # # # adduser --home /opt/jboss-6.1.0.Final --no-create-home --system jboss6 cd /opt/jboss-6.1.0.Final/server/ cp -a default local cd local mkdir deploy.disabled tmp data log work chown jboss6: deploy.disabled tmp data log work /opt/jboss-6.1.0.Final/bin/run.conf: ajustar parmetros -Xms/-Xmx (l. 43): a if [ "x$JAVA_OPTS" = "x" ]; then JAVA_OPTS="-Xms1024m -Xmx1024m ... fi Desativao de servios: ca c # # # # mv mv mv mv deploy/ROOT.war deploy.disabled/ deploy/jmx-console-activator-jboss-beans.xml deploy.disabled/ deploy/admin-console-activator-jboss-beans.xml deploy.disabled/ deploy/jbossws-console-activator-jboss-beans.xml deploy.disabled/

Deploy: # adduser --shell /noshell \ --home /opt/jboss-6.1.0.Final/server/local/deploy.ftp deployer # mkdir /opt/jboss-6.1.0.Final/server/local/deploy.ftp/deploy # chown deployer: /opt/jboss-6.1.0.Final/server/local/deploy.ftp/deploy /opt/jboss-6.1.0.Final/server/local/conf/bootstrap/prole.xml: adicionar novo diretrio o de deploy (deploy.ftp/deploy) na congurao do bean UserProleFactory (l.30). ca <list elementClass="java.net.URI"> <value>${jboss.server.home.url}deploy</value> <value>${jboss.server.home.url}deploy.ftp/deploy</value> </list> # aptitude install vsftpd # echo /noshell >> /etc/shells anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 ftpd_banner=FTP server ready chroot_local_user=YES Driver JDBC: cp /path/to/ojdbc14_g.jar /opt/jboss-6.1.0.Final/server/local/lib
Reinaldo de Carvalho - reinaldoc@gmail.com

<!-- esta linha -->

27

Tecnologias J2EE

Apndice A. JBoss AS 6 e

A.1.4

Inicializao ca

Deve-se criar o seguinte invoke script para realizar a inicializaao e parada do servidor de aplicaao c c de forma apropriada, salve o contedo abaixo em /etc/init.d/jboss6. u
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46

#!/bin/bash start() { if [ "$(pgrep -c java)" -ne "1" ] ; then echo -n "Starting JBoss AS 6" su -l jboss6 -s /bin/bash \ -c /opt/jboss-6.1.0.Final/bin/run.sh -b 0.0.0.0 -c local >/dev/null 2>&1 & echo . else echo "JBoss AS 6 already running." fi } # warning: stop all java applications stop() { echo -n "Stopping JBoss AS 6" su -l jboss6 -s /bin/bash \ -c /opt/jboss-6.1.0.Final/bin/shutdown.sh -S >/dev/null 2>&1 i=0 while true; do if [ $i -gt 15 ] ; then su -l jboss6 -s /bin/bash -c "kill -9 $(pgrep java)" > /dev/null 2>&1 elif [ $i -gt 10 ] ; then su -l jboss6 -s /bin/bash -c "kill $(pgrep java)" > /dev/null 2>&1 fi if (ps -ef | grep -v grep | grep -q java) ; then echo -n . sleep 2 else break fi let i++ done rm /opt/jboss-6.1.0.Final/server/local/tmp/* >/dev/null 2>&1 rm /opt/jboss-6.1.0.Final/server/local/work/* >/dev/null 2>&1 echo . } restart() { stop start } case "$1" in start) start
Reinaldo de Carvalho - reinaldoc@gmail.com

28

Tecnologias J2EE

Apndice A. JBoss AS 6 e

47 48 49 50 51 52 53 54 55 56 57 58 59 60

;; stop) stop ;; restart) restart ;; *) echo "Usage: $0 {start | stop | restart}" exit 1 ;; esac exit 0 Deve-se cadastar o referido invoke script para ser executado durante a inicializaao e desligamento c do sistema operacional, conforme indicado abaixo: # chmod 755 /etc/init.d/jboss6 # update-rc.d -f jboss6 defaults

A.2

Proxy Fron-end

aptitude install apache2 libapache2-mod-jk /etc/apache2/mods-available/jk.properties worker.list=local worker.local.type=ajp13 worker.local.host=127.0.0.1 worker.local.port=8009 worker.local.socket_timeout=10 worker.local.socket_keepalive=True worker.local.connection_pool_size=30 /etc/apache2/mods-available/jk.conf <IfModule mod_jk.c> JkWorkersFile /etc/apache2/mods-available/jk.properties JkLogFile /var/log/apache2/mod_jk.log JkLogLevel info JkLogStampFormat "[%a %b %d %H:%M%S %Y] " JkShmFile /var/run/apache2/jk.shm </IfModule> Reativar mod jk (link em mods-enabled para jk.conf)
Reinaldo de Carvalho - reinaldoc@gmail.com

29

Tecnologias J2EE

Apndice A. JBoss AS 6 e

a2dismod jk a2enmod jk VirtualHost: /etc/apache2/sites-available/aelis <VirtualHost *:80> ServerName aelis.tre-pa.gov.br ServerAlias www.aelis.tre-pa.gov.br JkMount /aelis/* local RewriteEngine On RewriteLog "/var/log/apache2/aelis.log" RewriteCond %{REQUEST_URI} !^/aelis/ RewriteRule ^/(.*) /aelis/$1 [R,L] </VirtualHost> a2enmod rewrite a2ensite aelis

Reinaldo de Carvalho - reinaldoc@gmail.com

30

Apndice B e GlassFish 2
B.1
B.1.1

Instalao ca
Download

O instalador do Glasssh2 pode ser obtido no seguinte endereo: c http://glasssh.java.net/downloads/v2-b58g.html http://download.java.net/javaee5/v2 branch/promoted/Linux/glasssh-installer-v2-b58g.jar

B.1.2

Instalao ca

Deve-se criar um usurio (ex. glasssh2) para execuao do servidor de aplicaao: a c c # # # # adduser --home /opt --no-create-home --shell /bin/bash --system glassfish2 passwd glassfish2 chown glassfish2 /opt exit Os passos abaixo descrevem a instalaao do servidor de aplicao: c ca $ $ $ $ $ $ ssh -X glassfish2@server wget http://download.java.net/.../Linux/glassfish-installer-v2-b58g.jar java -Xmx512m -jar glassfish-installer-v2-b58g.jar cd glassfish chmod 755 lib/ant/bin/ant ./lib/ant/bin/ant -f setup.xml

B.1.3

Ps-instalao o ca

Aps a instalaao deve-se realizar os seguintes procedimentos: o c $ $ $ $ $ scp ojdbc14_g.jar glassfish2@server:/opt/glassfish/lib/ ssh glassfish2@server cd glassfish/bin ./asadmin start-domain domain1 ./asadmin change-admin-password 31

Tecnologias de Desenvolvimento J2EE

Tecnologias J2EE

Apndice B. GlassFish 2 e

B.1.4

Inicializao ca

Deve-se criar o seguinte invoke script para realizar a inicializaao e parada do servidor de aplicaao c c de forma apropriada, salve o contedo abaixo em /etc/init.d/glasssh2. u
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46

#!/bin/bash start() { echo -n "Starting GlassFish v2" su -l glassfish2 \ -c /opt/glassfish/bin/asadmin start-domain domain1 > /dev/null 2>&1 echo . } stop() { echo -n "Stopping GlassFish v2" su -l glassfish2 \ -c /opt/glassfish/bin/asadmin stop-domain domain1 > /dev/null 2>&1 i=0 while true; do if [ $i -gt 15 ] ; then su -l glassfish2 -c killall -9 java > /dev/null 2>&1 elif [ $i -gt 10 ] ; then su -l glassfish2 -c killall java > /dev/null 2>&1 fi if (ps -ef | grep -v grep | grep -q java) ; then echo -n . sleep 2 else break fi let i++ done echo . } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: $0 {start | stop | restart}" exit 1 esac
Reinaldo de Carvalho - reinaldoc@gmail.com

32

Tecnologias J2EE

Apndice B. GlassFish 2 e

47 48

exit 0 Deve-se cadastar o referido invoke script para ser executado durante a inicializaao e desligamento c do sistema operacional, conforme indicado abaixo: # chmod 755 /etc/init.d/glassfish2 # update-rc.d -f glassfish2 defaults

B.1.5

Problemas

libXtst.so.6: cannot open shared object le $ java -Xmx256m -jar glassfish-installer-v2-b58g.jar Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/amd64/xawt/libmawt.so: /libXtst.so.6: cannot open shared object file: No such file or directory Soluo ca aptitude install libxtst6

B.2

Publicao de Aplicao (Deploy) ca ca

Os procedimentos a seguir sero realizados no console web de administrao do servidor de aplicaao, a ca c acess atravs da endereo: vel e c http://appserver.example.com:4848

B.2.1

Pool de conexo a

O servidor de aplicaao atua como intermedirio entre a aplicaao e banco de dados relacionais, aplic a c cando controles sobre estes acesso. Isto ocorre atravs do pool de conexes, que dentre os controles, e o pode limitar a quantidade de conexes ao banco. o Em geral, cada aplicaao utiliza seu prprio pool de conexes, que deve ser congurado atravs c o o e do console web de administraao, conforme indicado: c Resources => JDBC => Connection Pools

Figura B.1: Novo pool de conexo a

Reinaldo de Carvalho - reinaldoc@gmail.com

33

Tecnologias J2EE

Apndice B. GlassFish 2 e

Figura B.2: Identicar o pool de conexo a

Figura B.3: Congurar o pool de conexo a

Figura B.4: Conferir o pool de conexo a

B.2.2

JDBC

O recurso JDBC utilizado para associar um nome JNDI a um pool de conexes previamente criado, e o e deve ser congurado atravs do console web de administrao, conforme indicado: e ca Resources => JDBC => JDBC Resources

Reinaldo de Carvalho - reinaldoc@gmail.com

34

Tecnologias J2EE

Apndice B. GlassFish 2 e

Figura B.5: Novo recurso JDBC

Figura B.6: Identicar o recurso JDBC

Figura B.7: Conferir o recurso JDBC

B.2.3

Deploy

A publicao de uma aplicaao deve ser realizada atravs do console web de administrao, conforme ca c e ca indicado: Applications => Entreprise Applications

Reinaldo de Carvalho - reinaldoc@gmail.com

35

Tecnologias J2EE

Apndice B. GlassFish 2 e

Figura B.8: Publicaao de sistema c

Figura B.9: Selecionar o pacote com o sistema

Figura B.10: Conferir a publicaao do sistema c

Reinaldo de Carvalho - reinaldoc@gmail.com

36

Apndice C e GlassFish 3.1.1


C.1
C.1.1

Instalao ca
Download

O instalador do Glasssh 3.1.1 pode ser obtido no seguinte endereo: c http://glasssh.java.net/downloads/3.1.1-nal.html http://download.java.net/glasssh/3.1.1/release/glasssh-3.1.1-unix-ml.sh

C.1.2

Instalao ca

Deve-se criar um usurio (ex. glasssh3) para execuo do servidor de aplicaao, e garantir permisso a ca c a de escrita no diretrio de instalao. Aps a instalaao, a permisso original do diretrio /opt ser o ca o c a o a denida. # # # # # aptitude install libxtst6 adduser --home /opt --no-create-home --shell /bin/bash --system glassfish3 chown glassfish3 /opt passwd glassfish3 exit Os passos abaixo descrevem a instalaao do servidor de aplicao: c ca $ $ $ $ ssh -X glassfish3@appserver wget http://download.java.net/glassfish/3.1.1/release/glassfish-3.1.1-unix-ml.sh chmod +x glassfish-3.1.1-unix-ml.sh ./glassfish-3.1.1-unix-ml.sh O instalador ser inicializado, e realize: a Clique em Avanar; c Selecione Instalao personalizada e clique em Avanar; ca c Selecione Instalar e congurar e clique em Avanar; c Indique o diretrio de instalao: /opt/glasssh3; o ca
Tecnologias de Desenvolvimento J2EE

37

Tecnologias J2EE

Apndice C. GlassFish 3.1.1 e

Figura C.1: Seleao do diretrio de instalaao c o c Verique o JDK identicado e clique em Avanar; c

Figura C.2: Identicaao do ambiente JDK c Desabilite o item Instalar ferramenta de atualizao e clique em Avanar; ca c Clique em Instalar; Selecione Criar um dom nio do servidor e clique em Avanar; c Identique as informaoes solicitadas apropriadamente e clique em Avanar; c c

Figura C.3: Conguraao do domain1 c Clique em Sair;


Reinaldo de Carvalho - reinaldoc@gmail.com

38

Tecnologias J2EE

Apndice C. GlassFish 3.1.1 e

C.1.3

Ps-instalao o ca

Aps a instalaao deve-se realizar os seguintes procedimentos como root: o c # # # # cd /opt mv /opt/.asadminpass /opt/glassfish3/ usermod -d /opt/glassfish3 glassfish3 chown root: /opt

A partir da sua estaao realize download do Oracle Database 10g Release 2 JDBC Driver (ojdbc14.jar) c e envie ao servidor: $ scp ojdbc14.jar glassfish3@appserver:/opt/glassfish3/glassfish/lib/

C.1.4

Inicializao ca

Deve-se criar o seguinte invoke script para realizar a inicializaao e parada do servidor de aplicaao c c de forma apropriada, salve o contedo abaixo em /etc/init.d/glasssh2. u
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

#!/bin/bash # Glassfish3 invoke script # Copyright (c) 2012 - Reinaldo de Carvalho <reinaldoc@gmail.com> ### BEGIN INIT INFO # Provides: # Required-Start: # Required-Stop: # Default-Start: # Default-Stop: # Short-Description: ### END INIT INFO

glassfish3 $all $all 2 3 4 5 0 1 6 Glassfish3 invoke script

# TODO: debianize putting domain names in /etc/default/glassfish3 # TODO: debianize using start-stop-daemon instead of su # @param $1 string to be checked # @return int command execution status function isEmpty { [[ $1 =~ ^[[:space:]]*$ ]] return $? } # @param $1 domain name # @return void set $GFPID with grassfish pid function setGfPid() { GFPID=$(ps -ef | grep -E "bin/java.*glassfish.jar.*$1" | \ grep -v grep | tr -s | cut -f2 -d ) } # @param $1 optional kill signal
Reinaldo de Carvalho - reinaldoc@gmail.com

39

Tecnologias J2EE

Apndice C. GlassFish 3.1.1 e

32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81

# @return void kill glassfish pid function killGf() { if ! isEmpty "$GFPID" ; then kill "$1" "$GFPID" > /dev/null 2>&1 fi } # @param $1 domain name function startdomain() { if isEmpty "$1"; then echo "Err: domain required as argument" return fi echo -n "Starting Java Application Server: glassfish3" setGfPid "$1" if isEmpty "$GFPID"; then su -l glassfish3 -c "/opt/glassfish3/glassfish/bin/asadmin \ start-domain \"$1\" > /dev/null 2>&1" echo " ($1)." else echo " ($1 already started)." fi } # @param $1 domain name function stopdomain() { if isEmpty "$1"; then echo "Err: domain required as argument" return fi echo -n "Stopping Java Application Server: glassfish3" setGfPid "$1" if isEmpty "$GFPID"; then echo " ($1 already stopped)." return fi su -l glassfish3 -c "/opt/glassfish3/glassfish/bin/asadmin \ stop-domain \"$1\" > /dev/null 2>&1" i=0 while true; do setGfPid "$1" if ! isEmpty "$GFPID" ; then if [ $i -gt 10 ] ; then killGf -9 elif [ $i -gt 5 ] ; then killGf fi echo -n . sleep 2 else
Reinaldo de Carvalho - reinaldoc@gmail.com

40

Tecnologias J2EE

Apndice C. GlassFish 3.1.1 e

82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107

break fi let i++ done echo . } case "$1" in start) startdomain domain1 ;; stop) stopdomain domain1 ;; restart) stopdomain domain1 startdomain domain1 ;; *) echo "Usage: $0 {start | stop | restart}" exit 1 ;; esac exit 0

Deve-se cadastar o referido invoke script para ser executado durante a inicializaao e desligamento c do sistema operacional, conforme indicado abaixo: # chmod 755 /etc/init.d/glassfish3 # update-rc.d -f glassfish3 defaults

C.1.5

Problemas

libXtst.so.6: cannot open shared object le java.lang.UnsatisfiedLinkError: /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/amd64/xawt/libmawt.so: /libXtst.so.6: cannot open shared object file: No such file or directory at java.lang.ClassLoader$NativeLibrary.load(Native Method) [...] at org.openinstaller.core.EngineBootstrap.main(EngineBootstrap.java:208) SEVERE INTERNAL ERROR: /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/amd64/xawt/libmawt.so: /libXtst.so.6: cannot open shared object file: No such file or directory Soluo ca aptitude install libxtst6
Reinaldo de Carvalho - reinaldoc@gmail.com

41

Tecnologias J2EE

Apndice C. GlassFish 3.1.1 e

C.2

Publicao de Aplicao (Deploy) ca ca

Os procedimentos a seguir sero realizados no console web de administrao do servidor de aplicaao, a ca c acess atravs da endereo: vel e c http://appserver.example.com:4848

C.2.1

Pool de conexo a

O servidor de aplicaao faz ponte para o acesso da aplicao a banco de dados relacionais, aplicando c ca controles sobre estes acesso. Isto ocorre atravs do pool de conexes, que dentre os controles, pode e o limitar a quantidade de conexes ao banco. o Em geral, cada aplicaao utiliza seu prprio pool de conexes, que deve ser congurado atravs c o o e do console web de administraao, conforme indicado: c Resources => JDBC => Connection Pools

Figura C.4: Novo pool de conexo a

Figura C.5: Identicar o pool de conexo a

Reinaldo de Carvalho - reinaldoc@gmail.com

42

Tecnologias J2EE

Apndice C. GlassFish 3.1.1 e

Figura C.6: Congurar o pool de conexo a

Figura C.7: Conferir o pool de conexo a

C.2.2

JDBC

O recurso JDBC utilizado para associar um nome JNDI a um pool de conexes previamente criado, e o e deve ser congurado atravs do console web de administrao, conforme indicado: e ca Resources => JDBC => JDBC Resources

Figura C.8: Novo recurso JDBC

Reinaldo de Carvalho - reinaldoc@gmail.com

43

Tecnologias J2EE

Apndice C. GlassFish 3.1.1 e

Figura C.9: Identicar o recurso JDBC

Figura C.10: Conferir o recurso JDBC

C.2.3

Deploy

A publicao de uma aplicaao deve ser realizada atravs do console web de administrao, conforme ca c e ca indicado: Applications => Entreprise Applications

Figura C.11: Publicaao de sistema c

Figura C.12: Selecionar o pacote com o sistema

Reinaldo de Carvalho - reinaldoc@gmail.com

44

Tecnologias J2EE

Apndice C. GlassFish 3.1.1 e

Figura C.13: Conferir a publicaao do sistema c

Reinaldo de Carvalho - reinaldoc@gmail.com

45

Apndice D e Firewall
D.1 Logs no console

/etc/sysctl.conf: descomentar conguraao a seguir (l. 10). c kernel.printk = 4 4 1 7 Aplicar conguraao: c


1

sysctl -p

D.2

Congurao ca

/etc/init.d/rewall.sh: criar arquivo com contedo abaixo e realizar adequaoes necessrias. u c a #!/bin/bash # Firewall invoke script # Copyright (c) 2012 - Reinaldo de Carvalho <reinaldoc@gmail.com> ### BEGIN INIT INFO # Provides: # Required-Start: # Required-Stop: # Default-Start: # Default-Stop: # Short-Description: ### END INIT INFO case "$1" in start) iptables iptables iptables iptables iptables iptables iptables

iptables $all $all 2 3 4 5 0 1 6 Firewall invoke script

-F -P -A -A -A -A -A

INPUT INPUT INPUT INPUT INPUT INPUT

DROP -i lo -j ACCEPT -m state --state ESTABLISHED,RELATED -j ACCEPT -p tcp --syn --dport 22 -j ACCEPT -s 10.15.10.0/24 -p tcp --syn --dport 4848 -j ACCEPT -s 10.15.10.0/24 -p tcp --syn --dport 8080 -j ACCEPT 46

Tecnologias de Desenvolvimento J2EE

Tecnologias J2EE

Apndice D. Firewall e

iptables -A INPUT -p tcp --syn --dport 5666 -j ACCEPT -s 10.15.1.5 iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT -s 10.15.1.5 iptables -A INPUT -m limit --limit 20/s -j LOG --log-prefix Firewall: ;; stop) iptables -P INPUT ACCEPT iptables -F ;; status|list) iptables -nvL ;; *) echo "Sintaxe: $0 [ start | stop | list ]" ;; esac Denir permisso de execuo e inicializaao automtica: a ca c a
1 2 3

chmod 755 /etc/init.d/firewall.sh update-rc.d firewall.sh defaults /etc/init.d/firewall.sh start

D.3

FTP Conntrack

/etc/modules: adicionar mdulo para inicializaao automtica; o c a nf_conntrack_ftp Esta congurao necessria para carregar o referido mdulo durante o boot, para carrga-lo ca e a o e no boot atual, execute: # modprobe nf_conntrack_ftp

Reinaldo de Carvalho - reinaldoc@gmail.com

47

Apndice E e Licena c
E.1 Documentao ca
Copyright (c) 2012 Reinaldo Gil Lima de Carvalho - reinaldoc@gmail.com distribuir e/ou modificar este documento Livre GNU (GNU Free Documentation Software Foundation; com todas Seoes c~ de Capa Frontal, e sem Textos de Quarta

garantida a permiss~o para copiar, E a sob os termos da Licena de Documentaao c c~ License) Vers~o 1.2, publicada pela Free a Secundrias Invariantes incluindo textos a Capa.

Tecnologias de Desenvolvimento J2EE

48

Das könnte Ihnen auch gefallen