Showing posts with label toplink. Show all posts
Showing posts with label toplink. Show all posts

Sunday, 4 October 2009

Installazione di EclipseLink in OC4J

Dopo qualche mese di silenzio, eccovi un piccolo tutorial che ho avuto modo di creare qualche giorno fa; come accade spesso in questi ultimi tempi,  mi sono trovato a dover migrare alcune applicazioni JEE basate su motore di persistenza Toplink Essentials alla nuova versione EclipseLink su piattaforma Oracle AS 10.1.3.4 (OC4J). Al contrario di WebLogic, l'installazione di EclipseLink in OC4J è meno banale, e vale la pena riassumere gli step necessari per completarla (è stata presa come riferimento una sezione  del Wiki di EclipseLink). E' anche posssibile evitare l'installazione di EclipeLink, includendo la suddetta libreria nel file EAR della nostra applicazione: tale approccio è tuttavia sconsigliato, in quanto la bassa posizione del file eclipselink.jar sul ClassLoader impedirebbe ad altre applicazioni di poterlo utilizzare.

Download

    Innanzitutto occorre scaricare la distribuzione di EclipseLink, disponibile alla sezione downloads del sito ufficiale di EclipseLink. Una volta scaricato il file eclipselink-n.n.n.zip, estrarre da esso i due file

    - eclipselink-*\eclipselink\jlib\eclipselink.jar

    - eclipselink-*\eclipselink\jlib\jpa\javax.persistence_*.jar
    Creazione di una nuova shared-library


      In questo passo, andremo a creare una nuova shared-library versionata per EclipseLink, aggiungendo il riferimento ai file jar nei file XML di configurazione.

      In primo luogo, creare una nuova directory org.eclipse.persistence in OC4J_ROOT/shared-lib con una sottodirecotry n.n.n per questa specifica versione  - the jars will be placed and referenced here. Ad esempio:


      /opt/oc4j101n/j2ee/home/shared-lib/org.eclipse.persistence/n.n.n

      Quindi, copiare i due file jar estratti in precedenza in questa directory.

      Arrivati a questo punto, occorre modificare il file $OC4J_ROOT/config/server.xml, aggiungendovi il seguente elemento shared-library:


      <shared-library name="org.eclipse.persistence" version="1.1.0" library-compatible="true">
         <code-source path="/opt/oc4j101n/j2ee/home/shared-lib/org.eclipse.persistence/n.n.n/eclipselink.jar"/>
         <code-source path="/opt/oc4j101n/j2ee/home/shared-lib/org.eclipse.persistence/n.n.n/javax.persistence_*.jar"/>
         <import-shared-library name="oracle.jdbc"/>

      Nota: l'attributo path dell'elemento code-source prevede che TUTTO il path dei jar file venga specificato, altrimenti OC4J non troverà i file al successivo riavvio ed eliminerà la porzione di server.xml appena aggiunta (con l'ovvia conseguenza che le librerie non verranno caricate dal ClassLoader).

      Import della nuova shared library

        Adesso occorre aggiungere il seguente elemento import-shared-library nel file $OC4J_ROOT/config/system-application.xml, appena sopra le due shared library esistenti oracle.persistence e oracle.toplink.

         <imported-shared-libraries>
         <!-- new EclipseLink shared library -->
          <import-shared-library name="org.eclipse.persistence"/>
          <!-- existing shipped out-of-the-box libraries -->
          <import-shared-library name="oracle.toplink"/>
          <import-shared-library name="oracle.persistence"/>


        Infine, riavviare l'istanza OC4J per rendere effettive le modifiche.

        Nota: la procedura viene descritta per l'istanza HOME, ma è ripetibile per qualsiasi istanza <OC4J_INST>. Occorre preventivamente creare la cartella shared-lib sotto j2ee/<OC4J_INST> e copiarvi i file jar, oppure posso lasciarli nella cartella j2ee/home/shared-lib e farla puntare al file server.xml in j2ee/<OC4J_INST>/config.