Utiliser les exemples fournis par Weblogic : partie 2 – l'application Medrec

Pour faire suite au premier article de cette série qui concernait l’utilisation des domaines exemples pré-construits, voici maintenant un autre exemple fourni sous forme d’application cette fois ; il s’agit de la fameuse gestion de centre médical Medrec que les stagiaires ayant suivi la formation Weblogic administrateur connaissent bien. Cette application est livrée complète avec l’ensemble de l’environnement de développement.
Cette fois encore, Le but de cet article est de mettre en œuvre les exemples fournis lors de l’installation de Weblogic afin que les utilisateurs dont le métier est l’administration puissent disposer d’une application de test  et de se familiariser avec le produit.
Pour que les exemples soient accessibles dans le répertoire du moteur Weblogic, il faut choisir d’installer les samples lors de l’installation de Weblogic. Le processus décrit ci-dessous est valable aussi bien pour WLS 11g que pour WLS 12c.

Au long de cet article, mon répertoire $WL_HOME est /u01/app/oracle/product/Middleware/wlserver_10.3, le vôtre est sans doute différent.
Nous allons détailler la procédure permettant de compiler et de paramétrer l’application pour pouvoir disposer d’une application de test.

1. Compilation

Il faut d’abord sourcer les variables d’environnement :

$ cd /u01/app/oracle/product/Middleware/wlserver_10.3/server/bin
$ source ./setWLSEnv.sh  # <== setWLSEnv.sh inclut commEnv.sh

Ensuite nous allons lancer l’utilitaire ANT pour générer la création des applications. La génération de l’application est complète et comprend notamment le test automatique de l’application avec Junit. Cette phase de test demande le lancement de la base Derby pour pouvoir fonctionner et c’est ici qu’il va falloir faire quelques modifications si nous voulons jouer « sportif » et dérouler le script ANT dans sa totalité, sinon nous pouvons jouer « père tranquille » et ne pas nous embêter …
1.1 Jouer sportif
Lancer la base Derby sur un port particulier qui va être utiliser par la phase de test de l’application :

/u01/app/oracle/product/Middleware/jrockit-jdk1.6.0_31-R28.2.3-4.1.0/jre/bin/java -Dderby.system.home=/u01/app/oracle/product/Middleware/wlserver_10.3/common/derby/demo/databases -Dderby.drda.portNumber=19082 -classpath /u01/app/oracle/product/Middleware/wlserver_10.3/server/lib/weblogic.jar:/u01/app/oracle/product/Middleware/wlserver_10.3/common/derby/lib/derbynet.jar:/u01/app/oracle/product/Middleware/wlserver_10.3/common/derby/lib/derbytools.jar org.apache.derby.drda.NetworkServerControl start
 1038  cd /u01/app/oracle/product/Middleware/wlserver_10.3/common/derby/bin

Se positionner dans le répertoire racine :

$ cd /u01/app/oracle/product/Middleware/wlserver_10.3/samples/server/medrec

SI nous lançons ANT tel quel, nous obtenons une stack java avec notamment l’erreur :

$ ant
java.security.AccessControlException: access denied (javax.management.MBeanServerPermission createMBeanServer)

Nous corrigeons cette erreur avec en rajoutant dans le fichier (j’utilise jrockit)  /u01/app/oracle/product/Middleware/jrockit-jdk1.6.0_31-R28.2.3-4.1.0/jre/lib/security/java.policy
dans la partie
// default permissions granted to all domains
grant {
…..
}
la ligne
permission java.util.PropertyPermission « file.encoding », « read »;
soit

grant {
 .....
permission java.util.PropertyPermission "file.encoding", "read";
 }

1.2 jouer « père tranquille »
Nous allons dans ce cas mettre à disable la phase de test automatique du code.

$ cd /u01/app/oracle/product/Middleware/wlserver_10.3/samples/server/medrec
$ ant -Dnotest=true

2. Utiliser ou créer un domaine de test

Quelle que soit la configuration du domaine, serveur d’administration seul ou serveur d’administration + serveur(s) géré(s), il faut impérativement que les applications soient déployées sur un serveur weblogic à l’écoute sur le port 7011. En effet l’application est codée en dur pour utiliser ce port, notamment pour l’accès au web service inclut dans l’application physician.
Pour que l’application fonctionne il faut une base de données contenant les schémas de l’application Medrec. Pour cela nous allons utiliser la base intégré Derby qui contient le schéma medrec pré-paramétré.
Nous activons le démarrage automatique de la base Derby dans notre domaine en positionnant le paramètre à true le paramètre DERBY_FLAG dans le fichier setDomainEnv.sh :

DERBY_FLAG="true"
 export DERBY_FLAG

3. Création de la source de données et des serveurs JMS

3.1 Source de données
pour accéder à la base Derby contenant Medrec, le mot de passe est « medrec » :
Créer une datasource de type générique en suivant les paramétrages décrit ci-dessous.
data_sources_samples1
data_sources_samples2_2
3.2 FIle JMS
Les ressources JMS suivantes sont à paramétrer, même si l’application fonctionne visuellement sans elles :
Serveur JMS : MedRecJMSServer
Nom JNDI     : com.bea.medrec.jms.PatientNotificationQueue
JMS modules  : MedRec-jms
JMS ressources :
medrec.jms.RecordToCreateQueue          Nom JNDI     : com.bea.medrec.jms.RecordToCreateQueue
medrec.jms.PatientNotificationQueue    Nom JNDI     :com.bea.medrec.jms.PatientNotificationQueue
weblogic.wsee.DefaultQueue                       Nom JNDI     :weblogic.wsee.reliability.wseeMedRecDestinationQueue

4. Déployer les applications obtenues durant la phase de compilation

Les fichiers archive à déployer sont dans le répertoire suivant : /u01/app/oracle/product/Middleware/wlserver_10.3/samples/server/medrec/dist/standalone
medrec.ear –> module principal
physician.ear –> module dédié aux médecins
browser-starter.war –> démarrage automatique de l’application dans un browser sur le serveur
Nous allons donc déployer les librairies nécessaires suivantes sur le serveur à l’écoute sur le port 7011 :

/u01/app/oracle/product/Middleware/wlserver_10.3/common/deployable-libraries/jsf-1.2.war
/u01/app/oracle/product/Middleware/wlserver_10.3/common/deployable-libraries/jstl-1.2.war

Puis les applications suivantes sur le serveur à l’écoute sur le port 7011 :

/u01/app/oracle/product/Middleware/wlserver_10.3/samples/server/medrec/dist/standalone/medrec.ear
/u01/app/oracle/product/Middleware/wlserver_10.3/samples/server/medrec/dist/standalonephysician.ear
/u01/app/oracle/product/Middleware/wlserver_10.3/samples/server/medrec/dist/browser-starter.war

(cette dernière application est facultative, elle ne sert qu’au démarrage automatique de l’application dans un browser sur le serveur).

5. Test de l’application

Ouf ! nous y sommes arrivés. L’accès à la page d’accueil se fait par une url du type :
http://localhost:7011/medrec
Les logins de test de l’application se trouvent sur la page d’accueil.