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

Webshpere数据源错误:无法查找JNDI名称

阎德辉
2023-03-14

我正在用Hibernate和Websphere application Server 8.0开发一个应用程序。

我已经在Websphere中创建了一个数据源,它可以成功地与数据库连接。

但从应用程序我得到以下错误:

系统错误创建会话:org。冬眠服务jndi。JndiException:无法查找JNDI名称[java:comp/env/jdbc/OracleDS]

以下是我所做的设置:

  1. Websphere数据源设置:

网状物xml

当我试图获得setsio工厂,它给我错误:

冬眠。爪哇:

try
    {
        Configuration configuration = new Configuration().configure();
        serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
        sessionFactory = configuration.buildSessionFactory(serviceRegistry);
    }
    catch (HibernateException he)
    {
        System.err.println("Error creating Session: " + he);
        throw new ExceptionInInitializerError(he);
    }

错误:

JAVAcom上的lang.NullPointerException。国际商用机器公司ws。网络容器。元数据。WebComponentMetaDataImpl。getJavaNameSpace(WebComponentMetaDataImpl.java:143)位于com。国际商用机器公司ws。线程上下文。JavaNameSpaceAccessorImpl。getJavaNameSpace(JavaNameSpaceAccessorImpl.java:79)位于com。国际商用机器公司ws。命名。JAVAjavaURLContextFactory。在com上创建UrlContextRoot(javaURLContextFactory.java:137)。国际商用机器公司ws。命名。urlbase。UrlContextFactory。getObjectInstance(UrlContextFactory.java:101)位于org。阿帕奇。白羊座。jndi。URLContextProvider。getContext(URLContextProvider.java:43)位于org。阿帕奇。白羊座。jndi。授权上下文。getURLContext(DelegateContext.java:252)位于org。阿帕奇。白羊座。jndi。授权上下文。findContext(DelegateContext.java:214)位于org。阿帕奇。白羊座。jndi。授权上下文。findContext(DelegateContext.java:207)位于org。阿帕奇。白羊座。jndi。授权上下文。在javax上查找(DelegateContext.java:157)。命名。初始化上下文。在org上查找(InitialContext.java:432)。冬眠服务jndi。内部的JndiServiceImpl。在org上找到(JndiServiceImpl.java:65)。冬眠服务jdbc。连接。内部的数据源连接提供程序MPL。在org上配置(DatasourceConnectionProviderImpl.java:116)。冬眠服务内部的StandardServiceRegistryImpl。在org上配置服务(StandardServiceRegistryImpl.java:75)。冬眠服务内部的AbstractServiceRegistryImpl。在org上初始化服务(AbstractServiceRegistryImpl.java:159)。冬眠服务内部的AbstractServiceRegistryImpl。getService(AbstractServiceRegistryImpl.java:131)位于org。冬眠发动机jdbc。内部的JdbcServicesImpl。在org上构建jdbcconnectionaccess(jdbcservicesiml.java:223)。冬眠发动机jdbc。内部的JdbcServicesImpl。在org上配置(jdbcservicesiml.java:89)。冬眠服务内部的StandardServiceRegistryImpl。在org上配置服务(StandardServiceRegistryImpl.java:75)。冬眠服务内部的AbstractServiceRegistryImpl。在org上初始化服务(AbstractServiceRegistryImpl.java:159)。冬眠服务内部的AbstractServiceRegistryImpl。getService(AbstractServiceRegistryImpl.java:131)位于org。冬眠cfg。配置buildTypeRegistrations(Configuration.java:1818)位于org。冬眠cfg。配置com上的buildSessionFactory(Configuration.java:1776)。测验util。冬眠。(HibernateUtil.java:25)

错误创建会话:org.hibernate.service.jndi.JndiExctive:无法查找JNDI名称[java: comp/env/jdbc/OracleDS]

请让我知道我错过了什么。

我尝试了更多次,现在我发现以下错误:

FFDC异常:javax.naming.NamingExctive SourceId:com.ibm.ws.naming.java.javaURLContextFactory.createURLContextRoot ProbeId: 142记者:java.lang.Class@dfac0b43javax.naming.NamingExctive: NMSV0308W: javaURLContextFactory无法创建javaURLContext对象,因为当前没有从执行线程访问的java URL名称空间。在com.ibm.ws.naming.java.javaURLContextFactory.createURLContextRoot(javaURLContextFactory.java:170)在com.ibm.ws.naming.urlbase.URLContextFactory.getObjectInstance(UrlContextFactory.java:101)在org.apache.aries.jndi.URLContextProvider.get上下文(URLContextProvider.java:43)在org.apache.aries.jndi.代表Context.getURLContext(代表Context.java:252)在org.apache.aries.jndi.代表Context.find上下文(代表Context.java:214)在org. apache. aries. jndi。在org. apache. aries. jndi。在javax. name。在javax. name。在org. hibernate. service. jndi。在JndiServiceInimplified(JndiServiceInava. java: 65)。在org. hibernate. service. jdbc。在。在。在。hibernate. service. jdbc。在。数据资源连接提供程序。配置(数据资源连接提供程序。java: 116)。标准服务注册。配置服务(标准服务注册)HibernateUtil. java: 25)

共有2个答案

汝昀
2023-03-14

在WebSphere中,hibernate数据源不需要java:comp/env

所以你的就Hibernate了。cfg。xml如下所示:

.
.
.
<!-- JNDI Datasource -->
<property name="hibernate.connection.datasource">jdbc/OracleDS</property>
.
.
.
万俟浩
2023-03-14

您是否在引用和JNDI名称之间创建了绑定?

你能行

  • 使用管理控制台-企业应用程序

 类似资料:
  • null:javax.naming.nameNotFoundException:project1-ear-1.0.0.00/project1-services-ejb1.0.0.0/personServiceImpl!com.domain.project1.interfaces.personService--service jboss.naming.context.java.“project1-e

  • 我有一个MS SQLServer 2008 a数据库,名为:“conpool”。并在那里创建了一个具有id、全名和年龄的表。现在,我已经在Netbeans 7.3和Tomcat 7.0.30中的Java中实现了一个连接池,以避免每次都将连接绑定到我的数据库,并且我可以对数据库进行查询。 我的连接池: //------------------------Beginn JDBC连接池---------

  • 我试图转换一个传统的8.5 WebSphere配置到WebSphere自由20. x配置,并得到一个错误。我相信连接设置是正确的,名称是正确的,驱动程序的jar文件存在,但下面有错误。 这里是基本的配置。 ... 服务器顶部的配置。xml jar文件为:db2jcc4-4.22.29.jar 并作为对jar/class文件的引用。 连接的java代码是标准的jdbc连接: 司机经理。getConn

  • 在weblogic上部署webapp时,我遇到了以下错误: 有人能告诉我调试这个的方法吗。

  • 我有通过jndi名称从WebLogic获取数据源的应用程序。 我在应用程序中配置了jndi数据源名称。yml: 我在WebLogic服务器上配置了它,指定了特定的目标。我测试了这个数据源,WebLogic说测试成功了。但是当我尝试部署应用程序时,我收到以下错误: 我需要确定WebLogic的数据源配置中存在问题,或者在java代码中获取数据源时存在问题。我是否能够在不部署应用程序的情况下测试获取数

  • 我试图自动登录到网站https://opensource-demo.orangehrmlive.com/web/index.php/auth/login使用硒通过它给出了一个错误 selenium.common.exceptions.NoSuchElementException: 消息: no suchElement: 无法找到元素: {“method”:“css selector”,“selec