2011-08-25 12 views
15

Nella mia applicazione sto usando Joda-Time 2.0 ma nel mio percorso WebLogic c'è la libreria Joda-Time 1.2.Come impostare l'ordine dei barattoli in WebLogic?

Come posso modificare l'ordine e indicare a WebLogic di utilizzare la mia libreria? Ora sta usando la propria libreria, non la mia. Ho appena aggiunto una dipendenza del progetto Maven a Joda-Time 2.0.

risposta

26

Ci sono diversi modi per farlo.

  1. Cambia la tua startWeblogic.cmd (sh) nella cartella bin per il tuo dominio, ricercare l'impostazione classpath e aggiungere il nuovo Joda prima di qualsiasi altra vasetti WebLogic
  2. come si è detto, è possibile modificare la weblogic .xml se l'applicazione è un'applicazione web e ha scelto di preferire qualsiasi lib all'interno della guerra.
  3. Se si utilizza un'applicazione Enterprise, è possibile impostare le seguenti opzioni nel weblogic-application.xml:

    <prefer-application-packages> 
        <package-name>org.apache.*</package-name> 
        <package-name>antlr.*</package-name> 
    </prefer-application-packages> 
    

e impostare il nome del pacchetto per Joda in là.

Si prega di notare che la prima opzione potrebbe causare strani comportamenti da WebLogic.

Nota per qualche motivo non riesco a far funzionare il codice con XML.

+0

thx per un'altra soluzione, ma il primo è più elegante e funziona, ma thx in ogni caso – hudi

+1

nota che non ha nulla a che fare con l'eleganza. entrambe le opzioni 2 e 3 potrebbero essere necessarie in base alle specifiche del progetto. JoseK funziona per il contenitore web, ma fallirà se ne hai bisogno nel tuo contenitore ejb. Ma se funziona per te, è la soluzione che stavi cercando –

+0

+1 su questo; l'opzione 2 include l'altra risposta e l'opzione 3 è il mio modo preferito di andare in quanto consente di specificare quali librerie vengono caricate a livello dell'applicazione. L'utilizzo di prefer-web-inf-classes è un approccio tutto o niente e causerà molte duplicazioni durante il caricamento di librerie che altrimenti sarebbero condivise a livello di server. – CashIsClay

11

Poiché la classe è presente nella vostra guerra, WEB-INF/lib,

si può provare a utilizzare l'impostazione weblogic.xml per forzare la classe WEB-INF/lib per essere caricato in preferenza a quella del server/lib con

<container-descriptor>  
<prefer-web-inf-classes>true</prefer-web-inf-classes> 
</container-descriptor> 
+0

nice it thx molto un – hudi

Problemi correlati