【问题标题】:Jetty JNDI Java Mail码头 JNDI Java 邮件
【发布时间】:2009-11-25 16:04:57
【问题描述】:

我正在使用带有 JBoss Seam 的 Jetty 7,并配置了 2 个 Java 邮件会话,一个用于支持通知,另一个用于一般通知。

我遇到的问题似乎来自 JBoss Seam / JSF 在发送电子邮件之前无法将我在事件上下文中设置的会话解析为正确的 Java 邮件会话。

由于它无法解析会话,它默认为 localhost 的 25 端口。奇怪的是,我使用与以前相同的代码来设置会话,我现在只是从 JNDI 获取它,而不是 Seam 组件.

我猜问题出在从 JNDI 获取 Session 并且没有正确代理。

大多数地方如何在 Web 应用程序中设置电子邮件通知,您是否经常支持超过 1 个,如果支持,您的配置是什么样的?

沃尔特

【问题讨论】:

    标签: java jakarta-ee jetty jndi jakarta-mail


    【解决方案1】:

    你试过这个吗(来自documentation):

    <Configure id='wac' class="org.mortbay.jetty.webapp.WebAppContext">
    ...
    <New id="mail" class="org.mortbay.jetty.plus.naming.Resource">
         <Arg><Ref id="wac"/></Arg>
         <Arg>mail/Session</Arg>
         <Arg>
           <New class="org.mortbay.naming.factories.MailSessionReference">
             <Set name="user">fred</Set>
             <Set name="password">OBF:1xmk1w261z0f1w1c1xmq</Set>
             <Set name="properties">
               <New class="java.util.Properties">
                 <Put name="mail.smtp.host">XXX</Put>
                 <Put name="mail.from">me@me</Put>
                 <Put name="mail.debug">true</Put>
               </New>
              </Set>
           </New>
         </Arg>
    </New>
    </Configure>
    

    【讨论】:

    • 大卫,我确实试过了,但无济于事。我正在使用 Jetty 7,所以我将类名更改为 Jetty7 等效项。我没有传入 Web 应用程序上下文,所以我猜我的组件可能对其他应用程序可用(如果我有其他应用程序)。当我调试时,这个会话在 JNDI 中,否则它会抛出异常。 PasswordAuthenticator 中的用户/密码均为空。虽然通过邮件会话传入的属性与我设置的完全一样,但它们似乎都没有被实际使用。沃尔特
    • 大卫,我更新了上面的问题。尽管并非所有内容都已填充,但我按预期恢复了 Java 邮件会话。当 Seam 尝试呈现消息时,即找不到会话,导致属性的外观不粘。
    【解决方案2】:

    嗯,问题出在我的模块和 JBoss Seam 之间。同样,我正在做一些非标准的事情(比如在应用程序中使用多个电子邮件地址,并根据发件人地址动态分配邮件会话)。

    基本上发生的事情是我将电子邮件解析为发件人地址,然后使用该地址在 JNDI 中查找邮件会话。通过该邮件会话,我将其设置在活动事件上下文中,然后 JBoss Seam 自动在电子邮件中查找“会话”值绑定:

    ...

    我有几个问题,mailSessionGoesHere 不能命名为会话。出于某种奇怪的原因,这与另一个组件冲突。另外,因为我是异步发送电子邮件的,它有自己的事件上下文,这意味着我需要在映射中传递它,而不是直接在用于触发电子邮件的事件上下文中设置它。

    一旦我整理好所有这些,我现在可以从我选择的任何地址发送电子邮件,只要它在 web.xml、jetty-env.xml 和电子邮件模板中设置即可。

    沃尔特

    【讨论】:

      猜你喜欢
      • 2011-07-24
      • 2012-04-30
      • 2012-04-24
      • 1970-01-01
      • 2015-01-09
      • 2010-09-12
      • 2012-10-07
      • 2016-06-16
      • 1970-01-01
      相关资源
      最近更新 更多