Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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 如何在JBossSOA5.x上部署JPA2应用程序?_Java_Jpa_Jboss_Classloader_Ear - Fatal编程技术网

Java 如何在JBossSOA5.x上部署JPA2应用程序?

Java 如何在JBossSOA5.x上部署JPA2应用程序?,java,jpa,jboss,classloader,ear,Java,Jpa,Jboss,Classloader,Ear,我正在迁移JBossSOAServerVersion5.2上最初使用EJB3持久性(JPA1.0)编写的应用程序,以便它使用JPA2.0(Hibernate实现)中的类型安全查询和条件查询。到目前为止,我完全无法部署EAR,因为它找不到javax.persistence库的正确版本。错误表明它找不到类javax.persistence.criteria.Expression。从我所看到的,它正在从内置于JBoss中的ejb3持久性库加载javax.persistence类。我已经尝试了各种方法,

我正在迁移JBossSOAServerVersion5.2上最初使用EJB3持久性(JPA1.0)编写的应用程序,以便它使用JPA2.0(Hibernate实现)中的类型安全查询和条件查询。到目前为止,我完全无法部署EAR,因为它找不到javax.persistence库的正确版本。错误表明它找不到类javax.persistence.criteria.Expression。从我所看到的,它正在从内置于JBoss中的ejb3持久性库加载javax.persistence类。我已经尝试了各种方法,这些方法应该让JBoss首先使用应用程序库,但都没有用。任何帮助都将不胜感激

我尝试过的方法:

  • 将“”配置添加到jboss-app.xml文件
  • 将jboss-classloading.xml文件添加到EAR的META-INF文件夹
  • 修改ear-deployer-jboss-beans.xml文件以使用独立类
  • 答案是“jboss classloading.xml”文件适用于web应用程序,但无法覆盖已发布EJB的类加载。已发布EJB的库在服务器级别必须是唯一的,因为JBoss aleady包含一个处理java.persistence.*命名空间的库,所以您不能在EJB中使用任何其他版本的JPA