0

从 jboss JNDI 获取 sessionfactory 时出现此错误,这是我的源代码。我尝试过多次修改,但仍未解决。提前致谢。

mysql-ds

它位于 jboss 默认部署文件夹中。

<datasources>
<local-tx-datasource>
<jndi-name>jdbc/NeuraDS</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/neurahmis</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>admin</user-name>
<password>admin@123</password>
<min-pool-size>5</min-pool-size>
<max-pool-size>1000</max-pool-size>
<exception-sorter-class-   name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>  
</local-tx-datasource>
</datasources>

web.xml

在 web.xml 中为数据源添加

<resource-ref>
<description>Database connection resource</description>   
<res-ref-name>Neura</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>

jboss-web.xml

在 jboss-web.xml 中为 jndi 添加

<jboss-web>
<context-root>/neurads</context-root>
<resource-ref>
<res-ref-name>Neura</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<jndi-name>java:jdbc/NeuraDS</jndi-name>
</resource-ref>
</jboss-web>

休眠.cfg.xml

这些是我的休眠属性。

<property name="hibernate.connection.datasource">java:/jdbc/NeuraDs</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property> 
<property name="connection.pool_size">1</property>
<property name="current_session_context_class">thread</property>
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<property name="show_sql">true</property>

HibernateUtil.java

获取会话工厂

sessionFactory=new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
4

2 回答 2

0

不知道为什么需要输入web.xmland jobss-web.xmlmysql-ds.xml应该足以将数据源绑定到 JNDI 树

在文件hibernate.cfg.xml中,您提到数据源为java:/jdbc/NeuraDs,您可以更正它jdbc/NeuraDs然后尝试。这就是我在项目及其工作中使用它的方式。JNDI 名称应该与您在mysql-ds.xml.

请确保检查启动日志以查看与此配置相关的任何错误。

于 2013-05-24T08:17:59.490 回答
0

它与读取连接创建属性有关。当您通过系统属性直接提供连接属性时,它可以工作。与基本休眠设置相关的东西看起来不对。

于 2013-07-16T13:03:46.407 回答