Instalação
Instalando o JDK 1.7
Gosto de fazer as coisa à moda antiga, aprende-se mais ... Após realizar o download do JDk, realize os seguintes passos.
* Dica: Quem utiliza Ubuntu, execute o passo 1 e 2, depois vá para o passo a passo no final da página. Red Hat e derivados, podem continuar.
1. Verificando a existência de outras máquinas java instaladas (execute)
$ java -version
Caso já exista o Java instalado, você terá uma resposta parecida a esta:
java version "VERSAO INSTALADA"
Java(TM) SE Runtime Environment (build 1.7.0_03-b04)
Java HotSpot(TM) 64-Bit Server VM (build 22.1-b02, mixed mode)
2. Se existir alguma versão do Java instalada, terá o seguinte diretório em sua máquina: "/usr/lib/jvm/ (javaversion)". Utilize para descompactar o seu Java baixado, execute:
$ tar -zxvf jdk-7u3-linux-i586.tar.gz
$ mv jdk-7u3-linux-i586 jdk1.7
Após, deverá retornar com a seguinte caminho:
$ pwd
/usr/lib/jvm/Jdk1.7
Obs.: Caso não exista o diretório "/usr/lib/jvm", poderá descompactar o pacote em "/usr/local".
3. Pronto, seu Java 1.7 está instalando, porém, ainda falta declarar algumas variáveis para fazer o seu sistema 'enxergar' o seu JDK1.7 como o padrão.
Localize o arquivo "/etc/profile".
- Por que?
- Por que no Linux, todas as variáveis especificadas neste arquivos serão inicializadas e automaticamente exportadas na inicialização do sistema.
# vim /etc/profile
Adicionar:
JAVA_HOME=/usr/lib/jvm/jdk1.7
PATH=$JAVA_HOME/bin:$PATH export PATH JAVA_HOME
CLASSPATH=$JAVA_HOME/lib/tools.jar
CLASSPATH=.:$CLASSPATH
export PATH JAVA_HOME CLASSPATH
4. Para validar as linhas adicionadas no arquivo Profile, realize o Logout com o seu usuário e retorne ao Prompt. Para verificar se está funcionando, execute:
# echo $PATH
Sua saída deve ser algo do tipo:
/usr/lib/jvm/jdk1.7/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
$ java -version
Sua saída deve ser algo do tipo:
java version "1.7.0_03"
Java(TM) SE Runtime Environment (build 1.7.0_03-b04)
Java HotSpot(TM) 64-Bit Server VM (build 22.1-b02, mixed mode)
Com o Java instalado e funcionando, vamos partir para a instalação do JBoss.
Ubuntu
1. Habilitando o "/etc/alternatives", execute:
$ sudo update-alternatives --install /usr/bin/java java /SEU/java/DIRECTORY/jre/bin/java 3
2. Troque a versão do Java utilizado com o alternatives, execute:
$ sudo update-alternatives --config java
Obs: Verifique o numero do Java 1.7, e digite na opção acima.
3. Testando o seu Java 1.7, execute:
$ java -version * Sua saída deve ser algo do tipo:
java version "1.7.0_03"
Java(TM) SE Runtime Environment (build 1.7.0_03-b04)
Java HotSpot(TM) 64-Bit Server VM (build 22.1-b02, mixed mode)
Com o Java instalado e funcionando, vamos partir para a instalação do JBoss.
Instalando o JBoss AS 7
A instalação do JBoss consiste, basicamente, em descompactar o arquivo "jboss-as-7.1.1.Final.tar.gz" e pronto, o JBoss já está instalado.
Como a instalação é simples, precisamos 'amarrar' bem para ter um ambiente de fácil administração e funcional.
1. Descompactar o JBoss:
$ tar -zxvf jboss-as-7.1.1.Final.tar.gz -C /usr/local
$ mv jboss-as-7.1.1.Final jboss
2. Entendendo a arquitetura e o funcionamento:
O JBoss é iniciado com o Script "standalone.sh" localizado dentro da pasta "bin", que você acabou de descompactar. Este Script consulta os arquivos de configuração contidos dentro da pasta "jboss/standalone/configuration" para iniciar o Servidor.
Darei um 'overview' das principais pastas que vamos utilizar.
Pasta: jboss/standalone
- Contém as principais configurações do Servidor, dentre elas os arquivos:
Guardam configurações de (IP - PORTA - PROTOCOLO E ETC):
standalone-full.xml
standalone.xml
standalone-full-ha.xml
standalone-ha.xml
standalone_xml_history
- Guardam as configurações de usuários do JBoss:
application-roles.properties
logging.properties
application-users.properties
mgmt-users.properties
- jboss/standalone/deployments : Irá conter os seus projetos! Todos os arquivos ".war" colocados neste diretório, sofrerão o Deploy automaticamente.
- jboss/standalone/log : Irá conter o Log de Boot e execução do Servidor JBoss.
- jboss/standalone/lib : Irá conter as extensões carregadas pelo Servidor.
- jboss/standalone/tmp : Irá conter os arquivos temporário gerado pela sua aplicação e pelo servidor.
Pasta: jboss/modules
Contém as libs (módulos). Vamos adicionar os Drives da nossa aplicação dentro deste diretório.
O formato utilizado por esse diretório é: modules/<oracle . exemplo>/jdbc/main/
Dentro desse diretório deverá conter o "modulo.jar" + a instrução em XML para utilização deste módulo, no formato "module.xml". Vamos tratar este ponto com mais detalhe.
Pasta: jboss/bin
Contém os binários para início e administração do seu Servidor JBoss.
Neste artigo, usaremos os Scripts abaixo:
add-user.sh : Adicionar usuários para acessar o JBoss;
standalone.sh : Script de inicialização do servidor JBoss.
3. Configurando o usuário JBoss (sistema)
O processo de instalação do JBoss é relativamente simples, porém, precisamos realizar alguns tratamentos, assim que terminamos de descompactar o JBoss, ele ficará com o usuário root e grupo root, então, mãos à obra.
Crie o usuário com os seguintes parâmetros:
jboss:x:<UUID>:<GUID>::/usr/local/jboss:/bin/nologin
Após, dê as devidas permissões:
# chown -R jboss.jboss /usr/local/jboss
# chmod -R 750 /usr/local/jboss
4. Testando o seu JBoss
Entre no diretório "jboss/bin", e execute o Script "standalone.sh"
# ./standalone.sh
Após ter executado, perderá o seu terminal, pois ele deixará o processo rodando no seu terminal, então, abra outro terminal e execute:
# netstat -nlp | grep java
Você deve ter uma reposta assim:
tcp 0 0 127.0.0.1:9990 0.0.0.0:* LISTEN 5389/java
tcp 0 0 127.0.0.1:9999 0.0.0.0:* LISTEN 5389/java
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 5389/java
tcp 0 0 127.0.0.1:4447 0.0.0.0:* LISTEN 5389/java
Tendo esta reposta, acesse o JBoss via browser utilizando a URL: http://localhost:8080
Feito isso, vá em 'Administration Console', será solicitado seu usuário e senha.
5. Configurando seu usuário
Entre na pasta "/usr/local/jboss/bin" e execute o "add-user.sh". Siga o passo a passo para criar um usuário no JBoss.
Obs.: Para administrar o JBoss, crie um usuário do tipo: Management User
Após ter criado o usuário, entre no browser e acesse o sistema novamente com seu usuário e senha.
Criando um Controle para o Servidor JBoss
Bom, temos o nosso JBoss instalado.
Já podemos executar o Deploy em nossas aplicações, porém, como bom analistas que somos, não podemos deixar que o Servidor fique 'jogado'.
Toda vez que precisar iniciar o Servidor, vou ter que entrar na pasta BIN e executar o "standanlone.sh"? Não.
Vamos criar uma espécie de Demond do Servidor para verificar o status e deixar o PID salvo em um lugar, onde podemos encontrar rapidamente.
Obs.: Vou disponibilizar o Script de inicialização, o mesmo pode ser usado e modificado, porém, não pode ser alterado o seu cabeçalho.
#
#SCRIPT RESPONSAVEL POR INICIALIZAR O SERVIDOR DO JBOSS
#
#AUTOR : LUCAS COSTA
#DATA 1 - ABR - 2012
#E-MAIL: mxsolucoes@gmail.com
#
#
export TERM=vt100
STAT=$1
if [ -e /var/log/servidorjboss.log ]
then
sleep 0
else
touch /var/log/servidorjboss.log
fi
if [ -e /var/run/jboss/jboss.pid ]
then
sleep 0
else
touch /var/run/jboss/jboss.pid
chmod 750 /var/run/jboss/jboss.pid
fi
LOGFILE="/var/log/servidorjboss.log"
STANDALONE="/usr/local/jboss/bin/standalone.sh"
PIDFILE="/var/run/jboss/jboss.pid"
VAR(){
VERPID=`cat $PIDFILE | xargs`
CONF=`cat $PIDFILE | wc -l`
}
chamajboss() {
VAR
[ $CONF -gt 0 ] && verjboss
if [ $CONF = 0 ]
then
MSG01="INICIANDO SERVIDOR JBOSS"
$STANDALONE >/dev/null &
JBOSS_PID01=$!
sleep 2
echo $JBOSS_PID01 >> $PIDFILE
MSG02="SERVIDOR JBOS INICIADO"
echo $MSG01 >> $LOGFILE
echo $MSG02 >> $LOGFILE
else
MSGERRO="ERRO DESCONHECIDO AO INICIAR O SERVIDOR JBOSS"
echo $MSGERRO >> $LOGFILE
fi
}
#
#
#
#
#FUNCAO DE PARAR O JBOSS
parajboss() {
VAR
if [ $CONF = 0 ]
then
echo "NAO EXISTE NENHUM SERVIDOR JBOSS RODANDO"
exit 0
else
echo -E "Localizando servico Jboss"
echo -E "Servidor Jboss encontrado, parando o servico"
for i in $VERPID; do kill -9 $i;done
echo -E "Servidor parado"
rm -rf $PIDFILE
MSG001="PARANDO SERVIDOR JBOSS"
MSG001="SERVIDOR JBOSS PARADO"
echo $MSG001 >> $LOGFILE
echo $MSG001 >> $LOGFILE
exit 0
fi
}
#
#
#
#FUCAO DE VERIFICA STATUS DO JBOSS
verjboss() {
VAR
if [ $CONF = 0 ]
then
echo "NAO EXISTE NENHUM SERVIDOR JBOSS RODANDO"
exit 0
else
echo "JA EXISTE SERVIDOR JBOSS RODANDO NOS PIDS: $VERPID" | xargs
exit 0
fi
}
case $STAT in
start ) chamajboss ;;
stop ) parajboss ;;
status ) verjboss ;;
*) echo "OPCAO INCORRETA UTILIZE (start|stop|status)" ;;
esac
1º Passo - Salve o seu Script dentro da pasta "bin" do JBoss e crie um link para a pasta "init.d":
# ln -s /usr/local/jboss/bin/jbossd /etc/init.d/jbossd
Feito isto, teste o seu Script:
# service jbossd status
* NAO EXISTE NENHUM SERVIDOR JBOSS RODANDO.
# service jbossd start
INICIANDO SERVIDOR JBOSS
SERVIDOR JBOSS INICIADO
# service jboosd status
JA EXISTE SERVIDOR JBOSS RODANDO NOS PIDS: <PID DO SEU PORCESSO>
2º Passo - Feito o Script de inicialização, vamos utilizá-lo de maneira simples para chamar o JBoss quando o seu Servidor executar o reboot, ou precisar ser desligado.
# cd /usr/local/jboss/bin
# touch MTjboss
# echo -E ". /usr/local/jboss/bin/jbossd start" > MTjboss
Verifique em qual nível de execução sua máquina está:
# runlevel
# ln -s MTjboss /etc/rc.<SEU RUNLEVEL>/S96jbossd
# ln -s MTjboss /etc/rc.<SEU RUNLEVEL>/K96jbossd
Feito isso, já temos nosso ambiente 'amarrado'.
Configurações
Habilitando módulos, Drivers e Data Sources no JBoss
Bom, vamos começar a modular o nosso JBoss AS 7 para nossas aplicações.
Por exemplo, se a sua API realiza um conexão a um banco Oracle para consultar, ou escrever dados, o JBoss não irá oferecer o suporte para sua API, caso você não disponibilize o Driver para realizar esta conexão.
Nesse capítulo, estarei disponibilizando um exemplo de instalação do Driver Oracle.
Como vimos no Overview do JBoss, a pasta "jboss/modules" contém as libs (módulos). Dentro desta pasta utilizamos a seguinte estrutura:
jboss/modules/com/<SEU MODULO>/main/ - A pasta main deve conter o seu módulo no formato .jar.
1º Passo : Criar os diretórios
Para configurar uma base de maneira adequada no JBoss AS 7, é necessário adicionar o Driver JDBC como um módulo.
Para realizar este procedimento, crie uma pasta para colocar o Driver do Oracle:
# mkdir jboss/modules/com/oracle/ojdbc6/main
Baixe o modulo no link: Oracle.com - JDBC
Copie o Driver da Oracle (ojdbc6.jar) para a pasta recém criada, e crie um arquivo "module.xml" com o seguinte conteúdo:
<module xmlns="urn:jboss:module:1.0" name="com.oracle.ojdbc6">
<resources>
<resource-root path="ojdbc6.jar">
</resource-root></resources>
<dependencies>
<module name="javax.api">
</module></dependencies>
</module>
2º Passo - Edite o arquivo "$JBOSS_HOME/standalone/configuration/standalone.xml", no modo Standalone, ou o arquivo "$JBOSS_HOME/domain/configuration/domain.xml" no modo Domain.
Procure pela linha <drivers> que é 'filho' de <subsystem xmlns=”urn:jboss:domain:datasources:1.0″> e acrescente o seguinte conteúdo dentro das tags <drivers>…</drivers>:
<driver name="oracle" module="com.oracle.ojdbc6">
<xa-datasource-class>
oracle.jdbc.OracleDriver
</xa-datasource-class>
</driver>
3º Passo - Crie um 'datasource' neste mesmo XML:
<datasource jndi-name="java:jboss/datasources/VIVAOLINUXDS" pool-name="OracleDS" enabled="true" jta="true" use-java-context="true" use-ccm="true">
<connection-url>jdbc:oracle:thin:@localhost:1521:oradb1</connection-url>
<driver>oracle</driver>
<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
<pool>
<prefill>true</prefill>
<min-pool-size>0</min-pool-size>
<max-pool-size>20</max-pool-size>
</pool>
<security>
<user-name>SEU_USUARIO_BANCO</user-name>
<password>SUA_SENHA_SECRETA</password>
</security>
</datasource>
Obs.: O parâmetro 'use-java-context', se colocado como 'false', fará com que o nome JNDI fique global (disponível externamente). O 'use-ccm' habilita o Cached Connection Manager.
Para configurações de isolamento de transações, podemos ter os seguintes possíveis valores:
TRANSACTION_READ_UNCOMMITTED,TRANSACTION_READ_COMMITTED,TRANSACTION_REPEATABLE_READ,TRANSACTION_SERIALIZABLE, TRANSACTION_NONE
Para maiores informações sobre o nível de isolamento, dê uma lida neste link: Wikipedia.org - Isolation
Obs.: No Pool, o prefil igual a 'true' já realiza as conexões e preenche o Pool. O 'mix-pool-size' e o 'max-pool-size', definem o número mínimo e máximo de conexões no Pool.
Para mais parâmetros, consulte o XSD do datasource: $JBOSS_HOME/docs/schema/jboss-as-datasources_1_0.xsd
Inicie o JBoss e se aparecer a seguinte mensagem no arquivo de Log:
[org.jboss.as.connector.subsystems.datasources] (Controller Boot Thread) Deploying JDBC-compliant driver class oracle.jdbc.OracleDriver (version 11.2)
2 ...
3 [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-1) Bound data source 1
. . . Seu módulo já está copilado e pronto para ser utilizado.
O padrão utilizado acima, irá servir de modelo para os outros módulos.
Alterando Configurações de Rede no JBoss
O JBoss, por padrão, trabalha utilizando o Localhost em seus arquivos de configuração.
Podemos alterae estas configurações, inclusive a porta que o programa irá utilizar.
Entre no diretório "jboss/standalone/configuration/", e execute:
# grep localhost *
standalone.xml: <wsdl-host>${jboss.bind.address:localhost}</wsdl-host>
standalone.xml: <inet-address value="${jboss.bind.address.management:localhost}"/>
standalone.xml: <inet-address value="${jboss.bind.address:localhost}"/>
standalone.xml: <inet-address value="${jboss.bind.address.unsecure:localhost}"/>
Obs.: Como estamos instalando o JBoss do zero, a saída do comando acima será bem maior.
# vim standalone.xml
Para substituir todas as ocorrencias de Localhost pelo seu IP, execute:
:%s/localhost/SEUIP/g
Feito isto, seu JBoss já está respondendo no seu IP.
Tag: estagiariodesuporte, estagiario de suporte