Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JNDI问题:JBoss4.2.2Spring2.5和HibernateEJB_Java_Jboss_Datasource - Fatal编程技术网

Java JNDI问题:JBoss4.2.2Spring2.5和HibernateEJB

Java JNDI问题:JBoss4.2.2Spring2.5和HibernateEJB,java,jboss,datasource,Java,Jboss,Datasource,我有一个奇怪的问题,这让我有些悲伤。如果以下jar在我的类路径中: <dependency> <groupId>org.hibernate</groupId> <artifactId>org.hibernate.ejb</artifactId> <version>3.3.2.GA</version> </dependency> 否则,数据源将从上下文返回fine。不幸的是,为了避免JBoss4.2.

我有一个奇怪的问题,这让我有些悲伤。如果以下jar在我的类路径中:

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>org.hibernate.ejb</artifactId>
<version>3.3.2.GA</version>
</dependency>
否则,数据源将从上下文返回fine。不幸的是,为了避免JBoss4.2.2中的ClassCastException,我需要jar

感谢您的帮助

<datasources>
<local-tx-datasource>
<jndi-name>dataContent</jndi-name>
<connection-url>jdbc:oracle:thin:@server.net:1521:XXX</connection-url>
<min-pool-size>1</min-pool-size>
<max-pool-size>5</max-pool-size>
<user-name>dbuser</user-name>
<valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker</valid-connection-checker-class-name>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name>
<password>dbpasswd</password>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
</local-tx-datasource>
</datasources>

数据内容
jdbc:oracle:thin:@server.net:1521:XXX
1.
5.
数据库用户
org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker
org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter
dbpasswd
oracle.jdbc.driver.OracleDriver

我记得JBoss4.2是EJB3/JPA兼容的,因此hibernate持久性实现应该只用于编译。以下maven依赖项应该可以实现这一点:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>org.hibernate.ejb</artifactId>
    <version>3.3.2.GA</version>
    <scope>provided</scope>
</dependency>

org.hibernate
org.hibernate.ejb
3.3.2.GA
假如

如果您只使用JPA部件,您可能会通过只依赖于javax.persistenceapi来进一步精简它。

看起来包含该依赖项也会带来一些其他JAR。确保您的应用程序没有打包JBoss特定的jar文件。在这种情况下,我认为可能是应用程序中存在jboss-common-core.jar导致了这个问题。删除该jar(以及任何其他特定于JBoss的jar文件)-您可以在maven依赖项中添加一个jar。

它返回null,但在其他情况下返回fine是什么意思?jar和这个问题有什么关系?返回fine意味着非空数据源。我不确定jar和它有什么关系,但我想知道这是否是Hibernate3VSJBoss4.2.2的问题。我尝试升级服务器上的hibernate JAR,但没有帮助。能否在-ds.xml文件中发布数据源定义?已发布。谢谢你的帮助。听起来很奇怪,你需要在JBoss中捆绑hibernate以避免类异常。你能描述一下你得到的错误吗?Jaikiran,结果是“你可以在maven依赖项中添加一个”;您的意思是“您可以在maven依赖项中添加一个‘提供的’”,另一个答案显示了这一点吗?
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>org.hibernate.ejb</artifactId>
    <version>3.3.2.GA</version>
    <scope>provided</scope>
</dependency>