2010-07-01 11 views
5

Estoy intentando implementar un archivo JAR en un servidor GlassFishv3. Esto da como resultado el error:Problema de la biblioteca de GlassFishV3 Hibernate

com.sun.enterprise.admin.cli.CommandException: 
remote failure: 
Exception while preparing the app : 
java.lang.RuntimeException: 
java.lang.ClassNotFoundException: 
org.hibernate.ejb.HibernatePersistence 

pensé que la clase "org.hibernate.ejb.HibernatePersistence" no está y trataron de añadir bibliotecas que contienen a la carpeta "glassfish \ domains \ domain1 \ lib". Los tomé de mi carpeta de NetBeans "NetBeans 6.9 \ java \ modules \ ext \ hibernate". El resultado es que Glassfish no está comenzando más. Se ejecuta en un tiempo de espera. La última entrada de registro es

INFO|glassfish3.0.1|javax.enterprise.system.std.com.sun.enterprise.v3.services.impl|_ThreadID=21;_ThreadName=Thread-1;|{felix.fileinstall.poll (ms) = 5000, felix.fileinstall.dir = C:\glassfishv301\glassfish\domains\domain1\autodeploy\bundles, felix.fileinstall.debug = 1, felix.fileinstall.bundles.new.start = true, felix.fileinstall.tmpdir = C:\DOKUME~1\me\LOKALE~1\Temp\fileinstall-8074722487477598658, felix.fileinstall.filter = null}|#] 

La carpeta autodeploy \ bundles mencionada en esa entrada está vacía.

¿Alguna idea de cómo mover formard?

Respuesta

2

Y para que conste, la versión de línea de comandos para agregar el paquete Hibernate es:

bin/pkg install hibernate 
+0

Muy útil y más fácil de ejecutar :) ¡Gracias! – Geoffroy

0

Integración Hibernate-JTA-APP-EJB-GlassFish-MySQL: 1- Hibernate-APP-EJB- GlassFish-MySql: Esta guía es para integrar hibernate.4.3.5 y EJB y GlassFish.4.0 en NetBeans.8.0 IDE. Crear un proyecto web en los granos de red y añadir archivos jar de hibernación al proyecto, otra configuración relacionada con la configuración de MySQL y GlassFish es muy simple, así que no describo en este artículo a continuación, crear el archivo persistence.xml de la siguiente manera:

<persistence-unit name="omidashouriPU" transaction-type="Resource_Local"> 
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> 
    <exclude-unlisted-classes>false</exclude-unlisted-classes> 
    <properties> 
      <property name="hibernate.archive.autodetection" value="class"/> 
      <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/> 
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/> 
      <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/YourSchemaName"/> 
      <property name="hibernate.connection.username" value="root"/> 
      <property name="hibernate.connection.password" value="yourpassword"/> 
      <property name="hibernate.show_sql" value="true"/> 
    </properties> 
</persistence-unit> 

en su clase EJB (clase que anota con @Stateless) para la creación de empleo EntityManager siguiente sintaxis:

EntityManagerFactory fem = Persistence.createEntityManagerFactory ("omidashouriPU"); EntityManager em = emf.createEntityManager(); em = emf.createEntityManager(); em.getTransaction(). Begin(); em.persist (YourEntityObject); em.getTransaction(). End();

Como usted sabe cuando está utilizando "transaction-type =" Resource_Local ", usted tiene que administrar la transacción usted mismo, significa que, la administración de la apertura y cierre de la transacción es nuestra responsabilidad.

2- Hibernate-JPA-JTA-EJB-GlassFish-MySql: Esta guía es para integrar hibernate.4.3.5 y EJB y JTA y GlassFish.4.0 en NetBeans.8.0 IDE. Crea un proyecto web en beans netos (atención: no hagas un proyecto web con maven porque hay un error en Netbeans.8.0 IDE) y agregue archivos hibernate jar al proyecto, otra configuración relacionada con la configuración de MySql y glassfish es muy simple (solo defina Connection Pool y JDBC en Resources> JDBC: JDBC Connection Pools & JDBC Resources, orientación para eso está en la web si lo busca) (atención: para definir un JNDI correcto, primero cree un proyecto temporal que dependa de JNDI como proyecto JPA en glassfish, luego copie la configuración que se crea en Glassfish para este Proyecto porque hay un error en glassfish cuando se van a poner un ping a MySQL en la creación de su primer conjunto de conexiones si se crea por sí mismo dentro de la glassfish) por lo que no describo en este artículo a continuación, crear el archivo persistence.xml de la siguiente manera:

<persistence-unit name="omidashouriPU" transaction-type="JTA"> 
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> 
<jta-data-source>jdbc/yourJNDI (which you defined in glassfish) </jta-data-source> 
    <exclude-unlisted-classes>false</exclude-unlisted-classes> 
    <properties> 
      <property name="hibernate.archive.autodetection" value="class"/> 
      <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/> 
<property name="hibernate.transaction.jta.platform" value="org.hibernate.service.jta.platform.internal.SunOneJtaPlatform"/> 
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/> 
      <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/YourSchemaName"/> 
      <property name="hibernate.connection.username" value="root"/> 
      <property name="hibernate.connection.password" value="yourpassword"/> 
      <property name="hibernate.show_sql" value="true"/> 
    </properties> 
    </persistence-unit> 

en su Clase EJB (clase que anota Ted con @Stateless) para la creación de empleo EntityManager siguiente sintaxis:

@PersistenceContext(unitName = " omidashouriPU ") 
EntityManager em; 
em.persist(YourEntityObject); 

Como saber cuando se está utilizando “tipo de transacción = 'JTA', la gestión de la transacción no está contigo, quiere decir que, la gestión de apertura y el cierre de la transacción es responsabilidad del servidor de aplicaciones (Here GlassFish). De hecho, si comprueba su persistence.xml en modo de diseño, frente al cuadro desplegable del proveedor de persistencia puede ver que ahora se agrega hibernación.

Estimado lector, He gastado 3 días para resolver este problema, agregue su experiencia a este artículo para completarlo, para cualquier pregunta puede enviarme un correo electrónico a [email protected]

Cuestiones relacionadas