JBoss Portal default bind address (windows!)

Dezembro 30, 2007 on 3:04 am | In Sem categoria | No Comments

Escrevi aqui sobre como alterar o default bind address do JBoss Portal. Apesar de não o ter dito explicitamente, as instruções aplicam-se exclusivamente a ambientes UNIX/Linux. Este artigo contém as instruções para a plataforma Windows.

Em Windows, o JBoss Portal instala-se como um serviço, recorrendo para isso a um script chamado:

installJBoss402.bat

Nesse script, a linha que efectivamente regista o serviço no Windows é a seguinte:

JBossPortal262Service.exe -install %SERVICE_NAME% %JDK_HOME%\jre\bin\server\jvm.dll -Djava.class.path=%JBOSS_HOME%\run.jar;%JDK_HOME%\lib\tools.jar -Dlocal.copy=false -Xms256m -Xmx512m -XX:MaxPermSize=128m run.jar -start org.jboss.Main -stop org.jboss.Main -method systemExit -out %LOGS_HOME%\stdout.log -err %LOGS_HOME%\stderr.log -current %JBOSS_HOME% -manual

Para conseguir trocar o default bind address é preciso passar a mesma propriedade que referi no artigo anterior à classe que arranca o JBoss. Isso pode ser feito modificando a linha anterior da seguinte forma:

JBossPortal262Service.exe -install %SERVICE_NAME% %JDK_HOME%\jre\bin\server\jvm.dll -Djava.class.path=%JBOSS_HOME%\run.jar;%JDK_HOME%\lib\tools.jar -Dlocal.copy=false -Xms256m -Xmx512m -XX:MaxPermSize=128m run.jar -start org.jboss.Main -params -Djboss.bind.address=<ip_address> -stop org.jboss.Main -method systemExit -out %LOGS_HOME%\stdout.log -err %LOGS_HOME%\stderr.log -current %JBOSS_HOME% -manual

A posição do parâmetro adicional é relevante! Deve aparecer imediatamente a seguir ao valor da opção -start.

A título de curiosidade, podem encontrar aqui uma lista de todos os parâmetros que controlam o funcionamento do JavaService.

Os créditos vão todos para o Manuel Costa que não desistiu enquanto não descobriu a solução correcta.

Share

WebSphere headless

Dezembro 17, 2007 on 11:56 pm | In Sem categoria | No Comments

Uma nota muito rápida sobre como conseguir que aplicações a correr em WebSphere possam usar classes do toolkit AWT sem que exista um ambiente gráfico funcional.

Para os apressados como eu a forma mais simples é definir como verdadeira a propriedade de sistema java.awt.headless, mas a teoria toda está muito bem explicada neste artigo da Sun.

Passar a propriedade no script que inicia o WebSphere, apesar de tentador, não funciona. O script de arranque do WebSphere faz apenas o bootstrapping do application server e a JVM que lança termina no final desse processo. A forma correcta está indicada nesta technote da IBM e passa por usar a consola de administração:

Servers > Application Servers > server1 > Process Definition > Java Virtual Machine > Generic VM Arguments

ou, alternativamente, editar directamente o ficheiro de configuração apropriado:

{$WAS}/config/cells/DefaultNode/nodes/DefaultNode/servers/server1/server.xml

Share

JBoss Portal default bind address

Dezembro 12, 2007 on 12:18 pm | In Sem categoria | 5 Comments

Nas últimas versões, o JBoss Portal cria os conectores http(s) apenas na interface localhost. Isto serve perfeitamente para ambientes de desenvolvimento e para cenários em que o JBoss só vai ser exposto através de um reverse proxy que corre no mesmo servidor. No entanto, se se pretender expôr directamente o JBoss na rede é necessário mudar este comportamento.

 Os conectores são definidos em:

JBOSS_HOME/server/default/deploy/jboss-web.deployer/server.xml

e usam todos a variável:

${jboss.bind.address}

Há vários documentos (como por exemplo este) que sugerem substituir a variável directamente pelo IP pretendido. No entanto, esta variável é utilizada em muitos outros sítios (por exemplo pelo RMI e JNDI) e seria bem mais simples e limpo alterar a variável no arranque do servidor.

A primeira coisa que me ocorreu foi modificar o script de arranque:

JBOSS_HOME/bin/run.sh

acrescentando a seguinte linha:

JAVA_OPTS=”$JAVA_OPTS -Djboss.bind.address=`hostname`”

Mas não funcionou. A variável continuava a vir inicializada com o valor “localhost”.

Ao fim de muito procurar descobri esta resposta a um post. A única diferença entre o sugerido e aquilo que fiz, é que a definição da variável é passada como argumento ao script de arranque (que por sua vez a passa para o comando que é executado), em vez de ser definida em JAVA_OPTS e passada directamente à JVM.

Não percebo inteiramente porque é que isto funciona, por isso se alguém me souber explicar, agradeço!

Curiosidade: há um documento no wiki do JBoss Portal que sugere e explicar como usar iptables para publicar o JBoss Portal!

Share

O mundo está perdido…

Dezembro 11, 2007 on 5:09 pm | In usability | 4 Comments

… quando são precisas instruções para abrir e fechar uma torneira!

 torneira

Share

SQLServer Create Database if it doesn’t exist

Dezembro 10, 2007 on 11:24 am | In Sem categoria | 2 Comments

good: 

if not exists(select * from sys.databases where name = ‘Testing’)
    create database testing

better:

if db_id(‘dbname’) is null
    create database testing

best?…

Source: Microsoft Forums

Share
Página seguinte »

© procself. Este blog está alojado no FEUP Blogs. Crie também o seu blog.
Subscreva os Artigos (RSS) e os Comentários (RSS) do procself.