【问题标题】:ejb-jar.xml env-entry enumsejb-jar.xml env-entry 枚举
【发布时间】:2012-12-12 16:12:35
【问题描述】:

这是我的 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 不是 facet-valid , java.lang.Short, java.lang.Integer, java.lang.Long, java.lang.Float, java.lang.Double]'。它必须是来自枚举的值。

这似乎表明,尽管有the documentation,但不允许使用枚举。还是发生了其他我可能会错过的事情?

【问题讨论】:

    标签: java glassfish ejb java-ee-6 ejb-jar.xml


    【解决方案1】:

    NetBeans 7.2.1(现在是最新版本)为 EJB 规范 3.0 版生成一个 ejb-jar.xml,它不能将枚举识别为 env-entry-types。将其更改为 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>
    

    【讨论】:

      猜你喜欢
      • 2013-04-10
      • 1970-01-01
      • 2014-01-28
      • 2015-10-12
      • 2013-11-02
      • 2020-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多