【问题标题】:Using JavaMail from a webapp in GlassFish在 GlassFish 中使用 Web 应用程序中的 JavaMail
【发布时间】:2012-10-19 15:28:23
【问题描述】:

我已经在我的 JSF 应用程序的支持 bean 中设置了一个 JavaMail 会话,结果证明发送电子邮件相当容易。但是,根据网络条件,它可能需要相当长的时间。 Transport.send() 方法将阻塞调用线程,直到发送电子邮件或协议以某种方式失败。

我的问题是:考虑到许多用户同时访问服务器的可能性,在 JSF 支持 bean 中可以这样做吗?

我可以创建一个应用程序范围的工作线程,它可以脱离 BlockingQueue 来处理后台的所有电子邮件。这是正确的做法吗?

【问题讨论】:

    标签: glassfish jakarta-mail glassfish-3


    【解决方案1】:

    一种可能性是让一个 ejb 产生 jms-messages,一个 mdb 异步消费消息并调用 Transport.send()

    看这个例子:http://faeddalberto.blogspot.com/2011/03/sending-email-with-ejb-3-mdb-message.html

    【讨论】:

      【解决方案2】:

      是的,最好将任何使用网络的东西(因此可能会意外延迟)移动到单独的线程中。

      【讨论】:

      • 这就是我需要知道的。网络上的示例没有提到这方面,所以我想知道 GlassFish 架构为其提供的 ServeLets(在我的例子中是 JSF 2 Facelets)是否以这种方式被阻止。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-30
      相关资源
      最近更新 更多