terça-feira, 12 de maio de 2009

Envio de e-mails pelo JBoss utilizando o GMail

Como apanhei um pouco para configurar, acho que vale a pena guardar esta informação.

O segmento abaixo corresponde ao conteúdo do arquivo mail-service.xml, que fica no diretório de deploy de sua configuração do JBoss. Este arquivo declara um MBean que funciona como factory de sessões de e-mail, conforme a API JavaMail.

Para utilizar em seu ambiente, altere o usuário/senha para o de uma conta de GMail e, mais importante, habilite esta conta para uso de POP/IMAP nas configurações da mesma !!! Sem este último passo, nada vai funcionar...

Outro ponto importante: este esquema também funciona com contas do google apps, portanto você não está limitado apenas a contas no domínio gmail.com.


<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: mail-service.xml 62349 2007-04-15 16:48:15Z dimitris@jboss.org $ -->
<server>

<!-- ==================================================================== -->
<!-- Mail Connection Factory -->
<!-- ==================================================================== -->

<mbean code="org.jboss.mail.MailService"
name="jboss:service=Mail">
<attribute name="JNDIName">java:/Mail</attribute>
<attribute name="User">SEU_USUARIO@gmail</attribute>
<attribute name="Password">SUA_SENHA</attribute>
<attribute name="Configuration">
<!-- A test configuration -->
<configuration>
<!-- Change to your mail server prototocol -->
<property name="mail.transport.protocol" value="smtp"/>
<property name="mail.smtp.host" value="smtp.gmail.com"/>
<property name="mail.smtp.port" value="587"/>
<property name="mail.smtp.auth" value="true"/>
<property name="mail.smtp.starttls.enable" value="true"/>

<!-- Change to the address mail will be from -->
<property name="mail.from" value="SEU_USUARIO@gmail.com"/>

<!-- Enable debugging output from the javamail classes -->
<property name="mail.debug" value="true"/>
</configuration>
</attribute>
<depends>jboss:service=Naming</depends>
</mbean>


</server>

sexta-feira, 8 de maio de 2009

Reload automático de contextos no JBoss

Na configuração padrão do JBoss, o reload de um contexto web ocorre de forma automática apenas se o arquivo web.xml for alterado. Se vc quiser que o contexto seja recarregado automaticamente, como no Tomcat, faça o seguinte:

Acesse o JMX Console na URL:  http://localhost:8080/jmx-console/
1. Procure a seção  "jboss.web"
2. Clique no MBean "host=localhost,path=/SuaApp,type=Loader"
3. Altere o valor do atributo "reloadable" para "true"
4. Clique em  “Apply Changes” 


A partir deste momento, toda vez em que houver uma alteração nas classes do contexto, o mesmo será recarregado. Quando isto ocorre, aparece a mensagem no log:

11:28:57,732 INFO  [StandardContext] Reloading this Context has started