当前位置: 首页 > 知识库问答 >
问题:

名称中的非法上下文:java:app/jdbc/ActionBazaarDS

徐翔
2023-03-14

具有以下内容的EAR:
META-INF/MANIFEST. MF
META-INF/application.xml
META-INF/glassfish-resources.xml
META-INF/wildfly-ds.xml
actionbazaar-chapter3-client.jar
actionbazaar-chapter3-ejb.jar
actionbazaar-chapter3-web.war

未能在WildFly 9中部署,异常为:<代码>java。lang.RuntimeException:WFLYNAM0030:名称中的非法上下文:java:app/jdbc/ActionBazaarDS“

文件META-INF/wildfly ds。xml为具有问题JNDI名称的应用程序配置数据源。

<?xml version="1.0" encoding="UTF-8"?>
<datasources xmlns="http://www.jboss.org/ironjacamar/schema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.jboss.org/ironjacamar/schema
        http://docs.jboss.org/ironjacamar/schema/datasources_1_1.xsd">
    <datasource enabled="true"
        jndi-name="java:app/jdbc/ActionBazaarDS"
        pool-name="Chapter3EmbeddedH2Pool">
        <connection-url>jdbc:h2:mem:chapter3 ;DB_CLOSE_DELAY=-1</connection-url>
        <driver>h2</driver>
    </datasource>
</datasources>

相同的JNDI名称适用于GlassFIsh 4.1。但是我不确定这里有什么问题。请解释这里有什么问题。

共有1个答案

巢宏富
2023-03-14

wildfly-ds.xml文件是一种主要为了向后兼容而存在的机制。JNDI名称应该位于全局命名空间中,例如java: jboss/jdbc/ActionBazaarDS

现在,任何符合Java EE 7的实现都允许您在标准部署描述符中配置数据源:

<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://xmlns.jcp.org/xml/ns/javaee"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/application_7.xsd"
            version="7">
    <module>
        <java>actionbazaar-chapter3-client.jar</java>
    </module>
    <module>
        <ejb>actionbazaar-chapter3-ejb.jar</ejb>
    </module>
    <module>
        <web>
            <web-uri>actionbazaar-chapter3-web.war</web-uri>
            <context-root>/actionbazaar</context-root>
        </web>
    </module>
    <library-directory>lib</library-directory>
    <data-source>
        <name>java:app/jdbc/ActionBazaarDS</name>
        <url>jdbc:h2:mem:chapter3 ;DB_CLOSE_DELAY=-1</url>
        ... 
    </data-source>
</application>

这应该允许您在java: app命名空间中声明DataSource,因为规范中的示例暗示了这一点。

 类似资料:
  • 我正在开发一个Java Web应用程序,并将其部署在Websphere Application Server中,

  • 问题内容: 我在Linux机器上有一个项目,其中包含带有在Windows中被认为是非法/保留的字符的文件(http://msdn.microsoft.com/zh- cn/library/aa365247%28VS.85%29.aspx )。该项目在多个文件夹中有10,000多个文件,我将确定这些文件的路径。 我可以为每个非法/保留字符,但是有一种更简单的方法来查找包含以下内容的所有文件 确定后,

  • 我真的对此感到困惑!我有2个班,俱乐部和会员。在Membership中,我有方法getMonth();在Club中,我有joinedMonth(),它接受参数'month'--所以用户输入一个月,然后我希望它返回在该特定月份加入的成员资格。 我试图从Club类调用getMonth()方法,这样我就可以继续比较月份的整数。但是,当我试图调用该方法时,我只得到提到的“非静态方法getMonth()不能

  • 我有一个由许多模块组成的JavaEE应用程序。我试图能够进行间接的JNDI查找。 我遵循以下步骤: ejb jar。xml:在每个模块中。我定义了一个企业bean。模块中的所有DAO都继承自此DAO(MyDataAccessObject) persistence.xml:我在每persistence.xml中定义(在每个模块中) ibm应用程序bnd。xml 我应该在WebSphere知道的jav

  • 问题内容: 我在构建ORM库时要考虑到重用和简单性。一切都进行得很好,除了我被愚蠢的继承限制所困。请考虑以下代码: 显然,这不是我所期望的行为(尽管实际行为也很有意义)。因此,我的问题是,你们是否知道在父类中获得子类名称的意思。 问题答案: 简而言之。这不可能。在php4中,您可以实施可怕的破解(检查),但是该方法在PHP5中不起作用。参考资料: 37684 34421 编辑 :PHP 5.3中后

  • 问题内容: 是否可以让您的用户下载其他名称的文件? 例如,有一个名为“ 4324ffsd34.jpg”的文件。我希望人们通过download.php以不同的名称(例如“ filetodownload.jpg”)下载它,而不重命名原始文件。 问题答案: 当然,请使用Content-disposition 标头 如果您希望提供默认文件名,而不是自动下载,那么这似乎可行。