Java ejb-jar.xml环境条目枚举

Java ejb-jar.xml环境条目枚举,java,glassfish,ejb,java-ee-6,ejb-jar.xml,Java,Glassfish,Ejb,Java Ee 6,Ejb Jar.xml,这是我的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://

这是我的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>

EmailEjb
java:app/env/smtp.host
java.lang.String
smtp.mandrillapp.com
java:app/env/smtp.port
java.lang.Integer
587
java:app/env/smtp.transportStrategy
org.codemonkey.simplejavamail.TransportStrategy
SMTP_TLS
java:app/env/smtp.username
java.lang.String
user@example.com
java:app/env/smtp.password
java.lang.String
福巴
部署时,我会遇到以下异常:

org.xml.sax.SAXParseException;行号:23;栏目号:85;归档文件[localgp-WEB-1.0-SNAPSHOT]中的部署描述符文件WEB-INF/ejb-jar.xml。cvc枚举有效:值“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]”无效。它必须是枚举中的值

这似乎表明,尽管如此,枚举是不允许的。还是发生了我可能遗漏的其他事情?

NetBeans 7.2.1(目前最新版本)为ejb规范的3.0版生成了一个ejb-jar.xml,它不将枚举识别为
env条目类型。将其更改为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>