2012-04-13 21 views
6

Tengo dos preguntas para hacer con respecto a JBoss 5.1. Estamos en proceso de migrar de JBoss 4.2 a JBoss 5.1.JBoss 5.1: Hibernate con JPA

También utilizamos Java 1.6 y JPA 2.0 con Hibernate 3.6 como proveedor.

Mis preguntas son:

  1. ¿Es posible el uso de Hibernate 3.6 o superior con JBoss 5.1. ¿Si es así, entonces cómo?
  2. ¿Qué hay de JPA 2.0? Sé que JBoss 5.1 viene con compatibilidad con JPA 1.0. ¿Podemos usar JPA2?

Y como no podemos hacer ningún tipo de configuración en la instalación de JBoss, todas las reparaciones deben hacerse solo en nuestra aplicación.

Gracias de antemano, JassB

Respuesta

2

Haga lo siguiente:

1) Añadir a jboss- classloading.xml/src/main/webapp (estoy usando Maven):

contenido:

<?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) Modificar $ JBOSS_INSTALL_DIRECTORY/jboss-as/server/PROFILE $/conf/bootstrap/deployers.xml, y añadir lo siguiente al final:

<bean name="IgnoreFilesDeployer" 

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



</bean> 

3) Crear un archivo jboss-IGNORE.TXT en la carpeta META-INF con el siguiente contenido:

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

4) he cambiado el nombre de mi persistence.xml a la primavera-persistence.xml y ha añadido este archivo en el context.xml como:

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

5) También he modificado el spring-persistence.xml (persistence_2_0 guardado.xsd en la carpeta webapp \ META-INF) como

<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> 
+0

Después de esto obtengo una ClassNotFoundException sobre rg.jboss.webbeans.integration.deployer.env.WebBeansBootstrapDeployer, lo cual es bastante extraño, porque es una clase incluida en jBoss 5.1. –

3

yo acabamos el mismo problema hoy en día, y después de probar muchas alternativas y preguntando por todas partes, la respuesta es no

No puede utilizar JPA 2.0 con JBoss 5.1 (aún más si no puede cambiar la configuración del servidor)

Pero he visto hibernate3.X trabajando en Jboss5.1, pero nunca con las características de las anotaciones: solo el antiguo modo de configuración XML.

Ahora, desde mi punto de vista, tiene 2 soluciones: solicitar actualizaciones del servidor o cambiar su sistema de acceso de datos a la vieja usanza.

+1

gracias, hice JPA 2.0 para trabajar con JBoss 5.1 – JazB

+0

¿Alguien ha sido capaz de descubrir cómo integrar JPA 2.0 o esta respuesta es incorrecta? –

+0

En mi caso, el servidor se actualizó en producción desde entonces: ¡no más problemas! – antoine