Beruflich Dokumente
Kultur Dokumente
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 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
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
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
Tecnologias 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
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
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
Tecnologias J2EE
2.2
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;
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
Tecnologias J2EE
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
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);
10
Tecnologias 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;
Na nova janela, realize os seguintes procedimentos: identique os items selecionados; clique em Next;
11
Tecnologias 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;
12
Tecnologias J2EE
2.4
2.4.1
Jboss AS
Download
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;
13
Tecnologias J2EE
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;
14
Tecnologias 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
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.
15
Tecnologias J2EE
16
Tecnologias 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;
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
17
Tecnologias J2EE
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;
18
Tecnologias 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
19
Tecnologias 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
2.6.2
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;
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
2.6.3
21
Tecnologias J2EE
2.6.4
Publicando a aplicao ca
2.6.5
Acessando a aplicao ca
22
JPA
Driver JDBC
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
<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>
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-
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
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
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
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
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 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
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
33
Tecnologias J2EE
Apndice B. GlassFish 2 e
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
34
Tecnologias J2EE
Apndice B. GlassFish 2 e
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
35
Tecnologias J2EE
Apndice B. GlassFish 2 e
36
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
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
38
Tecnologias J2EE
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
# 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
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
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
C.2
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
42
Tecnologias J2EE
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
43
Tecnologias J2EE
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
44
Tecnologias J2EE
45
Apndice D e Firewall
D.1 Logs no console
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
-F -P -A -A -A -A -A
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 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
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
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.
48