API JavaMail e implementação do Tomcat 7
Pergunta
Existem várias APIs Java EE que existem exatamente assim - APIs (interfaces, objetos de domínio, enums, etc.mas nenhuma aula real que fazer coisa).APIs como JPA, JDBC ou JTA.Essas APIs devem então ter implementações;para JPA existem impls como Hibernate, MyBatis ou TopLink.Para JDBC existem drivers para cada RDBMS específico.Para JTA existe Bitronix e Atomikos.
Mas e o JavaMail?É apenas uma API?Em caso afirmativo, quais são algumas implementações comuns disso?Se eu implantar meu aplicativo Java (como um WAR) no Tomcat 7, de onde vem essa implementação (especificamente)?O Tomcat tem seu próprio JavaMail impl?Quais JARs/pacotes/classes compõem o impl do Tomcat?
Solução
JavaMail é um padrão JSR 919
O servidor TomEE tem suporte para JavaMail.
A configuração é muito fácil e fica assim
- tomee já vem com
apache-tomee-plus-1.6.0/lib/geronimo-javamail_1.4_mail-1.8.2.jar
- em
tomee.xml
(configurado em$TOMEE/conf
) você adiciona uma entrada conforme descrito por Configurando JavaMail - de dentro de suas aulas você pode referenciar a sessão de e-mail via
@Resource
como descrito em Recurso javax.mail.Session e autenticação smtp