GlassFish vs Apache

Publicado por Eduardo Fonseca Velasques em 19/06/2008

[ Hits: 16.341 ]

Blog: http://eduveks.blogspot.com

 


GlassFish vs Apache



Gastei um tempinho para desvendar certos mistérios por trás desta configuração e contornar alguns problemas.

Para configurar segui:
Então vamos lá!

Primeiro no Apache, instalar o mod_jk:

# apt-get install libapache2-mod-jk

Configurar o conteúdo do arquivo /etc/apache2/mods-available/jk.load:

# Modulo do mod_jk
LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so
# Arquivo de configuração
JkWorkersFile /etc/apache2/mod_jk_worker.properties
# Arquivo de log
JkLogFile /var/log/apache2/mod_jk.log
# Nível de detalhe dos logs [debug/error/info]
JkLogLevel debug
# Formato das mensagens de log
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indica para enviar SSL KEY SIZE
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat define o formato dos requests no Log
JkRequestLogFormat "%w %V %T"
# Envia todos jsp para o GlassFish
JkMount /*.jsp worker1
# Envia todos os acessos ao meu projeto web para o GlassFish
JkMount /WebApplication/* worker1

Na última linha, o WebApplication se refere ao nome do nosso projeto no GlassFish, coloque aqui o nome do teu projeto no GlassFish.

Agora falta configurar o /etc/apache2/mod_jk_worker.properties, com este conteúdo:

# Define 1 worker usando ajp13
worker.list=worker1
# Define as propriedades do worker1 (ajp13)
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300

Agora vamos ao GlassFish...

No Glassfish configurar as seguintes opções da JVM:

$GLASSFISH_HOME/bin/asadmin create-jvm-options -Dcom.sun.enterprise.web.connector.enableJK=8009

E também:

$GLASSFISH_HOME/bin/asadmin create-jvm-options -Dcom.sun.enterprise.web.connector.enableJK.propertyFile= /etc/apache2/mod_jk_worker.properties

Para confirmar se ficou bem configurado, verifique o arquivo:

$GLASSFISH_HOME/domains/domain1/config/domain.xml

Procurar neste arquivo por:

<jvm-options>-Dcom.sun.enterprise.web.connector.enableJK=8009</jvm-options>
<jvm-options>-Dcom.sun.enterprise.web.connector.enableJK.propertyFile= /etc/apache2/mod_jk_worker.properties</jvm-options>

Fazer o download do apache-tomcat-5.5.16.zip e pegar o tomcat-ajp.jar, só serve o jar desta versão, os das versões superiores não funcionam, provocam o seguinte erro no GlassFish:

Caused by: java.lang.NoSuchMethodError: org.apache.coyote.Response.getContentLengthLong()J

Link para o apache-tomcat-5.5.16.zip:

http://archive.apache.org/dist/tomcat/.../apache-tomcat-5.5.16.zip

Depois do download, procurar o tomcat-ajp.jar dentro do zip:

apache-tomcat-5.5.16/server/lib/tomcat-ajp.jar

E copiar este jar para dentro do GlassFish:

$GLASSFISH_HOME/lib/

Também são precisos os jars commons-modeler e commons-logging, que podem ser adquiridos aqui:
Modeler:
Logging:
Copiar estes dois jars também para dentro do:

$GLASSFISH_HOME/lib/

Feito isto, é preciso reiniciar o Apache e o GlassFish, e agora deverá estar funcionando através do Apache:

http://localhost/WebApplication

Assim através do Apache dá para acessar os projetos publicados no GlassFish!

A porta 8009 que configuramos para o JK não tem nada a ver com o porto web do GlassFish, o mod JK usa um protocolo próprio para comunicar com o Tomcat/AJP, e o GlassFish o que faz é iniciar uma nova porta usando o JK do Tomcat para poder comunicar com o mod_jk no Apache, e para testar se esta porta está funcionando, pode-se usar o telnet e ver se conecta:

$ telnet localhost 8009

Esta informação também esta disponível em:
Outras dicas deste autor

Cedega 5.1

Apache 2.2 - Modules

Nvidia vs Ubuntu Linux

Ubuntu iniciando o Compiz e placa Nvidia com antialiasing

Script Python para consumir Web Services em .Net

Leitura recomendada

Internet Banking Caixa: Erro CM12

Java 8 Oracle no Fedora 21 - Esse funciona!

Linux - Onde está meu plugin Java?

JRE não funciona no Debian Etch depois de instalado

SIAFI Gerencial e Operacional no Ubuntu 12.04

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts