【问题标题】:Tomcat -Hudson- Lookup failed for 'java:comp/env' in SerialContext in Unit testsTomcat -Hudson- 在单元测试中的 SerialContext 中查找“java:comp/env”失败
【发布时间】:2013-10-15 12:26:13
【问题描述】:

我正在使用 Tomcat 和 Hudson 运行 JUnit 测试,但在测试电子邮件发送时遇到问题。在 Hudson 上运行测试出现以下错误:

javax.naming.NamingException: Lookup failed for 'java:comp/env' in SerialContext 
    at com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.getComponentId(GlassfishNamingManagerImpl.java:773)
    at com.sun.enterprise.naming.impl.GlassfishNamingManagerImpl.lookup(GlassfishNamingManagerImpl.java:655)
    at com.sun.enterprise.naming.impl.JavaURLContext.lookup(JavaURLContext.java:156)
    at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:428)
    at javax.naming.InitialContext.lookup(InitialContext.java:411)
    at com.mycompany.extmon.authentication.ChangePasswordForm.<init>(ChangePasswordForm.java:43)
    at com.mycompany.extmon.authentication.ChangePasswordFormTest.changePasswordTestMissingUser(ChangePasswordFormTest.java:42).

我不明白为什么它会丢弃与 Glassfish 相关的异常,因为我以这种方式使用 tomcat:

    Context initCtx;
    Context envCtx;
    Session mailSession;

    public ChangePasswordForm() throws NamingException {
        initCtx = new InitialContext();
        envCtx = (Context) initCtx.lookup("java:comp/env");
        mailSession = (Session) envCtx.lookup("mail/erik.csik.ext@mycomoany.com");

在实时构建中一切正常,没有错误,已发送电子邮件,但在单元测试中失败。我忘了设置什么或者我应该在哪里寻找问题?到目前为止,我没有发现任何有用的东西。我想这与 Hudson 配置有关,但我找不到问题可能出在哪里。

包含的 context.xml 部分:

<Resource name="mail/erik.csik.ext@mycompany.com" auth="Container"
            type="javax.mail.Session"
        mail.smtp.auth="true"
                mail.smtp.host="mail.mycompany.net"
        mail.smtp.port="25"
        mail.smtp.user="admin"
        mail.transport.protocol="smtp"
        password="password"
        mail.smtp.from="erik.csik.ext@mycompany.com"/>

【问题讨论】:

  • 你的&lt;Resource..../&gt;是什么样的?
  • @Qben 我更新了问题以包含它。

标签: java jakarta-ee tomcat tomcat7 jakarta-mail


【解决方案1】:

您的查找中似乎有错字:

<Resource name="mail/erik.csik.ext@mycompany.com"

对比

envCtx.lookup("mail/erik.csik.ext@mycomoany.com");
.......................................^

【讨论】:

  • 是的,我在问题中更改了这一部分,但实际代码中不存在拼写错误
猜你喜欢
  • 2020-08-29
  • 1970-01-01
  • 2014-05-12
  • 1970-01-01
  • 2022-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-20
相关资源
最近更新 更多