这是我的hibernate.cfg.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<hibernate-configuration>
<session-factory>
  <property name="dialect">net.sf.hibernate.dialect.InformixDialect</property>
  <property name="connection.datasource">nettrack</property>
  <property name="show_sql">true</property>
  <mapping resource="cc/yinbo/nettrack/system/admin/Ywjkfdep.hbm.xml" />
    <mapping
        resource="cc/yinbo/nettrack/system/admin/Ywjkfuser.hbm.xml" />
    <mapping resource="cc/yinbo/nettrack/system/admin/Ywjkfgyb.hbm.xml" />
</session-factory>
</hibernate-configuration>
运行后就报错
cc.yinbo.hibernate.util.HibernateUtil 2012-09-12 17:51:52,719 -- ERROR -- ######创建SessionFactory失败:
net.sf.hibernate.HibernateException: Could not find datasource
    at net.sf.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:48)
    at net.sf.hibernate.connection.ConnectionProviderFactory.newConnectionProvider(ConnectionProviderFactory.java:83)
    at net.sf.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:64)
    at net.sf.hibernate.cfg.Configuration.buildSettings(Configuration.java:1119)Caused by: javax.naming.NameNotFoundException: Unable to resolve 'nettrack'. Resolved ''; remaining name 'nettrack'
    at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1139)
    at weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:252)
    at weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.java:182)cc.yinbo.hibernate.util.HibernateUtil 2012-09-12 17:51:52,734 -- ERROR -- ######获取当前线程session失败:
java.lang.NullPointerException
    at cc.yinbo.hibernate.util.HibernateUtil.currentSession(HibernateUtil.java:89)
    at cc.yinbo.hibernate.util.BaseDAO.getSession(BaseDAO.java:51)
    at cc.yinbo.hibernate.util.BaseDAO.query(BaseDAO.java:239)
这是我的weblogic连接池配置参数截图

解决方案 »

  1.   

    <property name="connection.datasource">nettrack</property>
    这句应该是没找到nettrack数据源。把nettrack数据源完整地整写上试试
    或者加下面这两行配置试试。
    <property name="hibernate.connection.provider_class">net.sf.hibernate.connection.DatasourceConnectionProvider</property>
    <property name="hibernate.jndi.class">weblogic.jndi.WLInitialContextFactory</property>
      

  2.   

    一般在外面的数据源,用全局的名称
    java:/xxxxx
      

  3.   

    我按照你说的也用了
    可是还是报这个错误javax.naming.NameNotFoundException: While trying to look up /nettrack in /app/webapp/DefaultWebApp/7503773.; remaining name '/nettrack'
      

  4.   

    咦,那奇怪了,他报找不到,而jndi有没错,
    你的数据源没问题吗?
    那要靠你自己慢慢调了