0

これは私の ejb-jar.xml です:

<?xml version="1.0" encoding="UTF-8"?>

<ejb-jar xmlns = "http://java.sun.com/xml/ns/javaee" 
         version = "3.0" 
         xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">

    <enterprise-beans>
        <session>
            <ejb-name>EmailEjb</ejb-name>
            <env-entry>
                <env-entry-name>java:app/env/smtp.host</env-entry-name>
                <env-entry-type>java.lang.String</env-entry-type>
                <env-entry-value>smtp.mandrillapp.com</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>java:app/env/smtp.port</env-entry-name>
                <env-entry-type>java.lang.Integer</env-entry-type>
                <env-entry-value>587</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>java:app/env/smtp.transportStrategy</env-entry-name>
                <env-entry-type>org.codemonkey.simplejavamail.TransportStrategy</env-entry-type>
                <env-entry-value>SMTP_TLS</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>java:app/env/smtp.username</env-entry-name>
                <env-entry-type>java.lang.String</env-entry-type>
                <env-entry-value>user@example.com</env-entry-value>
            </env-entry>
            <env-entry>
                <env-entry-name>java:app/env/smtp.password</env-entry-name>
                <env-entry-type>java.lang.String</env-entry-type>
                <env-entry-value>foobar</env-entry-value>
            </env-entry>
        </session>
    </enterprise-beans>
</ejb-jar>

展開時に、次の例外が発生します。

org.xml.sax.SAXParseException; 行番号: 23; 列番号: 85; アーカイブ [localgp-web-1.0-SNAPSHOT] 内のデプロイメント記述子ファイル WEB-INF/ejb-jar.xml。cvc-enumeration-valid: 値 'org.codemonkey.simplejavamail.TransportStrategy' は、列挙 '[java.lang.Boolean, java.lang.Byte, java.lang.Character, java.lang.String に関してファセット有効ではありません、java.lang.Short、java.lang.Integer、java.lang.Long、java.lang.Float、java.lang.Double]'. 列挙型の値である必要があります。

documentationにもかかわらず、列挙型は許可されていないことを示唆しているようです。それとも、私が見逃している可能性のある何か他のことが起こっていますか?

4

1 に答える 1

1

env-entry-typeNetBeans 7.2.1 (現在の最新バージョン) は、enum をsとして認識しないバージョン 3.0 の EJB 仕様の ejb-jar.xml を生成します。バージョン 3.1 に変更すると問題が解決し、リソースが正しく挿入されます。

<ejb-jar xmlns = "http://java.sun.com/xml/ns/javaee" 
         version = "3.1" 
         xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd">

    <!-- Stuff goes here. -->

</ejb-jar>
于 2012-12-12T22:03:33.667 に答える