2012-05-11 4 views
5

Al momento, Hibernate Validator ha rilasciato l'ultima versione come 4.3.0.Final here. Ho cercato di aggiornarlo al mio 3.1.2 Glassfish come il passo successivo: -Come aggiornare il validatore di ibernazione 4.3.0. Finale per Glassfish 3.1.2?

1. Remove the GLASSFISH/glassfish/modules/bean-validator.jar 
2. Copying the hibernate-validator-4.3.0.Final.jar to GLASSFISH/glassfish/modules 
3. Restart the Glassfish 
4. The Glassfish cannot start. It seems hang. 

Dopo la ricerca tramite Google, ho trovato che il file denominato "fagiolo-validator.jar" è stata creata dal Team Glassfish come versione OSGi. Purtroppo, non riesco a trovare come crearlo. Potrebbe aiutarmi a consigliarti ulteriormente? Grazie mille per il tuo aiuto in anticipo. Non vedo l'ora di sentirti presto.

risposta

8

Una descrizione (leggermente obsoleta) di come costruire il bean-validator.jar di Glassfish può essere trovata here.

Quello che è necessario in generale è un bundle OSGi che include Hibernate Validator stesso e l'API di convalida del bean. Con questo pacchetto dovresti essere in grado di sostituire il bean-validator.jar originale. Inoltre, è necessario il bundle di JBoss Logging, che viene utilizzato dalla versione 4.3 di Hibernate Validator come API di registrazione e che è già disponibile in un bundle OSGi.

Se si sta costruendo un'applicazione web, si potrebbe anche confezionare HV 4.3 all'interno della vostra WAR e turn off delegazione class loader, fornendo il file WEB-INF/glassfish-web.xml con il seguente contenuto:

<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd"> 
<glassfish-web-app> 
    <class-loader delegate="false" /> 
</glassfish-web-app> 

In questo modo le classi saranno HV essere caricato dalla tua applicazione anziché dal modulo fornito da Glassfish.

Potrebbe interessarti anche il numero GLASSFISH-15648 che mira a fornire un pacchetto di aggiornamento Glassfish dedicato per HV.

+0

La ringrazio molto per voi gentilmente spiegazione. Vorrei chiedere il tuo aiuto ulteriormente mentre sto costruendo il progetto EJB. Glassfish-ejb-jar non ha la configurazione della proprietà "class-loader". Potresti per favore aiutare a spiegare ulteriormente? –

+2

La configurazione suggerita della delega del programma di caricamento classi sfortunatamente funziona solo all'interno di WAR, quindi probabilmente dovresti creare un bundle OSGi personalizzato. – Gunnar

+0

Grazie mille per la spiegazione. –

3

Come il mio caso era ear, piuttosto che war, basata su suggerimento di Gunnar, ho fatto una versione modificata del modulo, che può essere distribuita in Glassfish (La mia versione è 3.1.1 OSE).

Qualcuno potrebbe trovarlo ancora utile, vedere il mio blog per la mia soluzione (compresi approccio step-by-step): http://peter-butkovic.blogspot.de/2012/11/glassfish-311-oss-with-hibernate.html