Oracle Webshpere数据源错误:无法查找JNDI名称
我正在用Hibernate和WebSphereApplicationServer8.0开发一个应用程序 我已经在Websphere中创建了一个数据源,它可以成功地连接到数据库 但从应用程序中,我得到以下错误: SystemErr创建会话时出错:org.hibernate.service.jndi.JndiException:无法查找jndi名称[java:comp/env/jdbc/OracleDS] 以下是我所做的设置:Oracle Webshpere数据源错误:无法查找JNDI名称,oracle,hibernate,websphere,datasource,jndi,Oracle,Hibernate,Websphere,Datasource,Jndi,我正在用Hibernate和WebSphereApplicationServer8.0开发一个应用程序 我已经在Websphere中创建了一个数据源,它可以成功地连接到数据库 但从应用程序中,我得到以下错误: SystemErr创建会话时出错:org.hibernate.service.jndi.JndiException:无法查找jndi名称[java:comp/env/jdbc/OracleDS] 以下是我所做的设置: Websphere数据源设置: hibernate.cfg.xml
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);
}
错误:
java.lang.NullPointerException
位于com.ibm.ws.webcontainer.metadata.WebComponentMetaDataImpl.getJavaNameSpace(WebComponentMetaDataImpl.java:143)
位于com.ibm.ws.threadContext.JavaNameSpaceAccessorImpl.getJavaNameSpace(JavaNameSpaceAccessorImpl.java:79)
位于com.ibm.ws.naming.java.javaURLContextFactory.createURLContextRoot(javaURLContextFactory.java:137)
位于com.ibm.ws.naming.urlbase.UrlContextFactory.getObjectInstance(UrlContextFactory.java:101)
位于org.apache.aries.jndi.URLContextProvider.getContext(URLContextProvider.java:43)
位于org.apache.aries.jndi.DelegateContext.getURLContext(DelegateContext.java:252)
位于org.apache.aries.jndi.DelegateContext.findContext(DelegateContext.java:214)
位于org.apache.aries.jndi.DelegateContext.findContext(DelegateContext.java:207)
位于org.apache.aries.jndi.DelegateContext.lookup(DelegateContext.java:157)
在javax.naming.InitialContext.lookup(InitialContext.java:432)中
位于org.hibernate.service.jndi.internal.JndiServiceImpl.locate(JndiServiceImpl.java:65)
位于org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.configure(DatasourceConnectionProviderImpl.java:116)
位于org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
位于org.hibernate.engine.jdbc.internal.jdbcservicesiml.buildJdbcConnectionAccess(jdbcservicesiml.java:223)
位于org.hibernate.engine.jdbc.internal.jdbcservicesiml.configure(jdbcservicesiml.java:89)
位于org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
位于org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1818)
位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1776)
在com.test.util.HibernateUtil.(HibernateUtil.java:25)
创建会话时出错:org.hibernate.service.jndi.JndiException:无法查找jndi名称[java:comp/env/jdbc/OracleDS]
请让我知道我错过了什么
我尝试了更多次,现在我发现以下错误:
FFDC异常:javax.naming.NamingException SourceId:com.ibm.ws.naming.java.javaURLContextFactory.createURLContextRoot问题ID:142报告者:java.lang。Class@dfac0b43
javax.naming.NamingException: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.getContext(URLContextProvider.java:43)
位于org.apache.aries.jndi.DelegateContext.getURLContext(DelegateContext.java:252)
位于org.apache.aries.jndi.DelegateContext.findContext(DelegateContext.java:214)
位于org.apache.aries.jndi.DelegateContext.findContext(DelegateContext.java:207)
位于org.apache.aries.jndi.DelegateContext.lookup(DelegateContext.java:157)
在javax.naming.InitialContext.lookup(InitialContext.java:432)中
位于org.hibernate.service.jndi.internal.JndiServiceImpl.locate(JndiServiceImpl.java:65)
位于org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.configure(DatasourceConnectionProviderImpl.java:116)
位于org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
位于org.hibernate.engine.jdbc.internal.jdbcservicesiml.buildJdbcConnectionAccess(jdbcservicesiml.java:223)
位于org.hibernate.engine.jdbc.internal.jdbcservicesiml.configure(jdbcservicesiml.java:89)
位于org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
位于org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
位于org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1818)
位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1776)
在com.test.util.HibernateUtil.(HibernateUtil.java:25)
您是否在引用和JNDI名称之间创建了绑定 你能做到
- 使用管理控制台-
enterpriseapplication>ApplicationName>Resource