6

关于 JBoss 5.1,我有两个问题要问。我们正在从 JBoss 4.2 迁移到 JBoss 5.1。

我们还使用 Java 1.6 和 JPA 2.0 以及 Hibernate 3.6 作为提供者。

我的问题是:

  1. 是否可以将 Hibernate 3.6+ 与 JBoss 5.1 一起使用。如果是,那么如何?
  2. JPA 2.0 怎么样?我知道 JBoss 5.1 带有 JPA 1.0 兼容性。我们可以使用 JPA2 吗?

由于我们无法对 JBoss 安装进行任何类型的配置,所有的修复都只需要在我们的应用程序中完成。

提前致谢, JassB

4

2 回答 2

3

我今天刚遇到同样的问题,在尝试了很多替代方案并到处询问之后,答案是否定的

您不能将 JPA 2.0 与 Jboss 5.1 一起使用(如果您无法更改服务器的配置,则更是如此)

但是我见过 hibernate3.X 在 Jboss5.1 上工作,但从来没有使用注释功能:只有旧的 XML 配置方式。

现在,在我看来,你有两个解决方案:要么要求服务器升级,要么用旧的方式改变你的数据访问系统。

于 2012-04-17T18:05:24.777 回答
2

做这个:

1)将 jboss-classloading.xml 添加到 /src/main/webapp (我使用的是 Maven):

内容:

<?xml version="1.0" encoding="UTF-8"?>

<classloading xmlns="urn:jboss:classloading:1.0"

         domain="$UNIQUE_DOMAIN_NAME"

         export-all="NON_EMPTY"

         import-all="false"

         parent-first="false">

</classloading>

2) 修改$JBOSS_INSTALL_DIRECTORY/jboss-as/server/$PROFILE/conf/bootstrap/deployers.xml,在末尾添加如下内容:

<bean name="IgnoreFilesDeployer"

class="org.jboss.deployers.vfs.spi.deployer.AbstractIgnoreFilesDeployer"



</bean>

3)在META-INF文件夹中创建一个文件JBOSS-IGNORE.TXT,内容如下:

WEB-INF/classes/META-INF/persistence.xml

4)我已将我的 persistence.xml 重命名为 spring-persistence.xml 并将此文件添加到 context.xml 中:

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
      <property name="persistenceXmlLocation" value="classpath:/META-INF/spring-persistence.xml"/>
           ....
</bean>

5)我还修改了spring-persistence.xml(保存在webapp\META-INF文件夹中的persistence_2_0.xsd)为

 <persistence version="2.0"
 xmlns="http://java.sun.com/xml/ns/persistence"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="file:///persistence_2_0.xsd 
        http://java.sun.com/xml/ns/persistence">
....
</persistence>
于 2012-04-25T08:45:07.723 回答