Řešil jsem v práci opět takovej bombónek s
WAS 7. Ve WebSphere 7 je verze
Java Persistence API (
JPA) 1.x. Zmíněný framework je implementován např. pomocí
OpenJPA. Ale pokud vyžadujeme APJ 2.x je nutno do WebSphere instalovat Feature Pack (FeP). Seznam známých FeP je na stránkach IBM
WebSphere Application Server Feature Packs Family.
Instaloval jsem tedy FeP
WebSphere Application Server V7 Feature Pack for OSGi Applications and Java Persistence API 2.0
Při snaze rozšíření stáhnout od IBM dostavám krásnou hlášku :-)
The link which brought you here is invalid. Please reload the previous page and try again.
message code:
57e
Po době pátrání a laborování se vydávám cestou instalace FeP pomocí
IBM Instalation Managera což je Java GUI SW pro instalaci a aktualizaci IBM produktů. Po instalaci a aktualizaci samotného IBM IM na aktuální verzi 1.6.3.1, dle instrukcí přidávám repositáře pro IBM WebSphere. A posléze nainstaluji i samotné požadované rozšíření. V Product Information je FeP videt.
IBM IM lze instalovat jak pod rootem
./install nebo pod userem pod kterým běží WAS ./userinst. Instalace si ukláda nějaká data do
/etc a
/var, v případě userinst do home adresáře usera
/home/was/etc a
/home/was/var.
Pro otestování, jakou verzi JPA WAS používá použijeme následující příkaz.
was@wastest ~]$ /ibm/app/was/profiles/AppSrv01/bin/wsjpaversion.sh
WSJPA 1.2.1-SNAPSHOT
version id: WSJPA-1.2.1-SNAPSHOT-r1118:2591
revision: 1118:2591
OpenJPA 1.2.3-SNAPSHOT
version id: openjpa-1.2.3-SNAPSHOT-r422266:1395723
Apache svn revision: 422266:1395723
os.name: Linux
os.version: 2.6.18-308.el5
os.arch: amd64
java.version: 1.6.0
java.vendor: IBM Corporation
java.class.path:
/ibm/app/was/dev/JavaEE/j2ee.jar
/ibm/app/was/plugins/com.ibm.ws.jpa.jar
/ibm/app/was/plugins/com.ibm.ws.prereq.commons-collections.jar
user.dir: /home/was
A zde je problém, protože WAS používá své interní JPA a nikoliv naše instalované. Ale jistá aplikace vyžaduje verzi JPA 2.x.
Dohledal jsem si patřičný JAR, který JPA ve WAS řeší.
[was@wastest was]$ cd /ibm/app/was/profiles/AppSrv01/ && find . -name com.ibm.ws.jpa.jar
./plugins/com.ibm.ws.jpa.jar
./feature_packs/jpa/plugins/com.ibm.ws.jpa.jar
Pokud chceme používat FeP verze JPA musíme ještě rozšířit profil WAS.
./manageprofiles.sh -augment -profileName AppSrv01 -templatePath /ibm/app/was/profileTemplates/JPA/default.jpafep/
INSTCONFSUCCESS: Zvětšení profilu proběhlo úspěšně.
./manageprofiles.sh -listAugments -profileName AppSrv01
Registrované šablony rozšíření
/ibm/app/was/profileTemplates/JPA/default.jpafep
[was@wastest bin]$ /ibm/app/was/profiles/AppSrv01/bin/wsjpaversion.sh
WSJPA 2.0.1-SNAPSHOT
ID verze: WSJPA-2.0.1-SNAPSHOT-r1118:2749
Revize dílčí verze rozhraní JPA platformy WebSphere: 1118:2749
OpenJPA 2.0.2-SNAPSHOT
ID verze: openjpa-2.0.2-SNAPSHOT-r422266:1484287
Revize dílčí verze produktu Apache: 422266:1484287
os.name: Linux
os.version: 2.6.18-308.el5
os.arch: amd64
java.version: 1.6.0
java.vendor: IBM Corporation
java.class.path:
/ibm/app/was/feature_packs/jpa/dev/jpa_api.jar
/ibm/app/was/dev/JavaEE/j2ee.jar
/ibm/app/was/feature_packs/jpa/plugins/com.ibm.ws.jpa.jar
/ibm/app/was/plugins/com.ibm.ws.prereq.commons-collections.jar
user.dir: /ibm/app/was/bin
Po instalaci FeP jsme dotázáni, zda chceme pustit
GUI Profile Manager a v něm můžeme rozšíření profilu provést s tím, že nám aplikace napoví, jaky
profileTemplate máme použít.