0

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).

Tomcatをこのように使用しているため、このGlassfish関連の例外がドロップされる理由がわかりません:

    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");

ライブ ビルドではすべて正常に動作し、エラーは発生せず、メールは送信されますが、単体テストでは失敗します。何を設定するのを忘れましたか、またはどこで問題を探す必要がありますか? これまでのところ、有用なものは何も見つかりませんでした。ハドソンの設定に問題があると思いますが、どこに問題があるのか​​ わかりません。

含まれる 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"/>
4

1 に答える 1

0

ルックアップにタイプミスがあるようです:

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

対。

envCtx.lookup("mail/erik.csik.ext@mycomoany.com");
.......................................^
于 2013-10-17T01:55:41.267 に答える