当前位置: 首页 > 面试题库 >

容器外JNDI数据源

饶高雅
2023-03-14
问题内容

我想在Java SE应用程序中使用JNDI配置数据源。做这个的最好方式是什么?

到目前为止,我遇到了两个项目:

  1. Apache命名。项目页面上有一个用于配置数据源的特定示例,但看起来该项目已过时并且不再处于活动状态。
  2. JBossNS。使用似乎很容易配置仅本地的JNDI LocalOnlyContextFactory,但我还没有找到任何有关如何实际配置数据源的文档。

如果可能,我还要使用JTA事务管理器(使用JOTM?)配置数据源。


问题答案:

您为什么为此使用JNDI?如果您有提供程序,那并不是一个不好的解决方案,而是有诸如依赖注入(IoC:通过Spring或Guice)之类的替代方法。

这里描述了
Spring JDBC数据访问。很棒的是,您可以使用Spring将a DataSource注入代码中:

<bean class="com.my.Persister">
    <property name="dataSource" ref="dataSource" />
</bean>

可以使用JNDI查找来定义数据源:

<jee:jndi-lookup id="dataSource" jndi-name="jdbc/MyDataSource" />

在测试环境中,您可以直接注入数据源:

<bean id="dataSource" class="apache.db.PoolingDataSource">
    <!-- config goes here -->
</bean>


 类似资料:
  • 问题内容: 我设置了以下环境: Java 1.5 Sun application server 8.2 Oracle 10 Xe *Pillar 2 hibernate 我想知道如何为Java客户端(即,Web应用程序外部)编写代码,该代码可以引用应用程序服务器提供的JNDI数据源。 Sun Application Server的端口均为默认端口。服务器配置中有一个名为jdbc / xxxx的JN

  • 问题内容: 我们的应用程序当前使用的数据源是在JBoss standalone.xml中定义的,基本上我们需要在应用程序而不是容器中定义它。我们当前的设置是; application-context.xml; persistance.xml: datasource.xml: 基本上我想要的只是生产线 从datasource.xml读取而不是转到容器(JBoss)。看起来似乎很简单,但是在阅读了一些

  • 嗨,我正在尝试使用jndi数据源。下面是代码 context.xml 在spring servlet配置bean中是: 我得到这个错误 org.springframework.beans.factory.beanCreationException:创建名为“Contact Controller”的bean时出错:注入autowired依赖项失败;嵌套异常为org.SpringFramework.B

  • 简单地说。我希望有一个oracle jndi数据源可用于带有连接池的webapp。我想maven安装该项目,然后手动将其部署到jetty hightide 7。xx服务器并运行。我在WEB-INF文件夹中放置了一个jetty env文件,如下所示。 这是我的dataSource bean... Maven安装很好,但当我部署到jetty服务器并启动它时,我会遇到以下错误。 我已经在jetty pl

  • 我正在WebLogic12c上部署一个Spring Boot应用程序。 没有Jndi数据源,一切正常。我试图在WebLogic上配置一个名为“jdbc/myDataSource”的数据源,并在我的应用程序上设置了如下属性: 但是,当我部署我的web应用程序时,我收到以下错误: WebLogic.Application.ModuleException:javax.naming.nameNotFoun

  • 更具体地说,我得到了包含所有依赖项的可执行war。应用程序在没有jndi数据源的情况下启动,就像一个魅力一样,用jndi数据源运行它失败了。我认为在这样的配置中没有jetty.xml的位置,因此jetty-env.xml也不适用,因为jetty在默认情况下不会读取它。我试图使用jetty-web.xml进行jndi数据源配置,但jetty未能部署应用程序,返回503错误代码。我用的是9-M4型飞机