středa 24. července 2013

WebSphere 7 + OSGi/JPA 2.0 Feature Pack

Ř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.

Žádné komentáře: