原来的部署环境是基于jboss的,现在由于种种原因,需要运行在tomcat上,总是报错。
Jboss环境下hibernate配置如下:<hibernate-configuration><!-- jndi -->
<session-factory name="java:comp/env/hibernate/SessionFactory">
<!-- properties -->
<property name="connection.datasource">
java:comp/env/jdbc/etc_portal
</property>
<property name="dialect">
net.sf.hibernate.dialect.Oracle9Dialect
</property>
<property name="show_sql">false</property>
<property name="use_outer_join">false</property>

<property name="transaction.manager_lookup_class">
net.sf.hibernate.transaction.JBossTransactionManagerLookup
</property>
<property name="jta.UserTransaction">
java:comp/UserTransaction
</property> <!-- mapping files -->
</session-factory></hibernate-configuration>
运行在tomcat下报错信息:
net.sf.hibernate.HibernateException: Could not locate TransactionManager
        at net.sf.hibernate.transaction.JNDITransactionManagerLookup.getTransact
ionManager(JNDITransactionManagerLookup.java:26)应用中没有使用spring。在tomcat环境下,该如何配置
<property name="transaction.manager_lookup_class">
net.sf.hibernate.transaction.JBossTransactionManagerLookup
</property>
<property name="jta.UserTransaction">
java:comp/UserTransaction
</property>本人在线,有需要提供的信息,我会及时补充,请不吝赐教。

解决方案 »

  1.   

    补充信息:写了一个验证jndi的jsp,如下:<%@page contentType="text/html;charset=GBK"%>
    <%@ page import="java.sql.*,javax.sql.*,javax.naming.*"%>
    <%
    Connection conn = null;
    try {
    //初始化查找命名空间
    Context ctx = new InitialContext();
    DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/etc_portal");
    //取出连接
    conn = ds.getConnection();
    out.println("connection pool connected !");
    } catch (NamingException e) {
    out.println("Naming Exception:" + e.getMessage());
    } catch (SQLException e) {
    out.println("SQL Exception:" + e.getMessage());
    } finally {
    if (conn != null)
    conn.close();
    }
    %>请求这个jsp页面,显示“connection pool connected !”