• Aucun résultat trouvé

Titre: Version: Dernière modification: Auteur: Statut: Licence:

N/A
N/A
Protected

Academic year: 2022

Partager "Titre: Version: Dernière modification: Auteur: Statut: Licence:"

Copied!
11
0
0

Texte intégral

(1)

Titre:Installation de WebObjects 5.3 Version:2.1

Dernière modification: 2011/02/17 11:00

Auteur: Aurélien Minet <aurelien dot minet at cocktail dot org>

Statut:version finale

Licence:Creative Commons - by-nc-sa 2.0

( http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ )

Remarques:

• les pré-requis sont de connaître le shell et ce qu'est une JVM, d'avoir la maîtrise de l'OS utilisé.

• le document est "orienté" Linux et Bash mais la procédure d'installation reste applicable à d'autres Unix (ils ont besoin de la JVM 1.5 de Sun)

• rien dans ce document n'est supporté par Apple

• ce document dans sa globalité n'est pas spécifique Cocktail (sauf pour certains jar dans Extensions)

• au niveau de la typographie: le code, les lignes de commandes, le contenu des fichiers sont en italique

(2)

Installation de WebObjects 5.3

(3)

Versions:

____

date

____

n°version commentaires 10/07/2008 0 brouillon

13/08/2008 1.0 Version initiale

16/06/2009 1.2 corrections mineurs sur les chown

06/09/2010 2.0 Mise à jours générale suite au passage a Java 1.5.

Ajout/modification de la procédure pour Max OS X Leopard et Snow Leopard, ajout des .plist

16/02/2011 2.1 Corrections, reformulation, clarification sur la version de Java et du driver jdbc a utiliser.

Les version au format X.y.z ne sont pas listées, elles ne contiennent que des corrections (coquilles ....). L'information contenue ne change pas.

(4)

Objectif:... 5

Introduction: ... 5

1. Le runtime ... 6

2. UNIX ... 7

Etape n°1:... 7

Etape n°2:... 7

Etape n°3:... 8

3. OS X Leopard et Snow Leopard ... 9

Leopard Desktop et Snow Leopard ... 9

Leopard Server... 9

Remarque... 10

Conclusion ... 11

(5)

Objectif:

• savoir "installer"/utiliser le runtime sur UNIX

• gérer l'exécution des 2 "daemons" WebObjects

• changer de version

Introduction:

Apple ne vend plus WebObjects comme ce fut le cas jusqu'à la version 5.2, il est fournit avec OS X Server (payant) jusqu'à la version Leopard et avec XCode (gratuit).

La licence XCode permet d'installer/distribuer WebObjects pour le déploiement d'applications réalisées avec ce dernier, extrait de la Licence:

En accord avec le conditions générales de cette licence, vous pouvez utiliser,

installer et permettre l'accès à d'autres personnes au logiciel de déploiement WebObjects compris dans le logiciel de développement pour déployer des programmes d'application développés grâce au logiciel d'Apple WebObjects.

(Licence complète dans le package sous forme de pdf)

La problématique suivant les systèmes d'exploitation :

OS X Tiger installer XCode 2.4

OS X Tiger Server déjà installé

OS X Leopard / OS X Snow Leopard installation manuelle

OS X Leopard Server déjà installé mais en 5.4 donc downgrader en 5.3 mais conserver la 5.4 pour les updates

tout UNIX disposant d'une JVM 1.4.2 (/1.5)

de Sun installation manuelle

autre OS disposant d'une JVM 1.4.2 (/1.5)

de Sun installation manuelle possible, fonction des

spécificités de l'OS OS disposant d'une JVM 1.4.2 (/1.5) mais

pas de Sun

cela est bien sur fonction des spécificités de l'OS et de la compatibilité de la JVM.

Un fonctionnement correct n'est pas impossible mais risque d'être difficile.

Ainsi l'installation de WebObjects 5.3 sous Unix est le cœur de ce document mais la problématique OS X Leopard (10.5) est également abordée.

(6)

1. Le runtime

Le runtime WebObjects correspond à:

/System/Library/Frameworks/

JavaDTWGeneration.framework JavaDirectToWeb.framework JavaEOAccess.framework JavaEOApplication.framework JavaEOControl.framework JavaEODistribution.framework JavaEOGeneration.framework JavaEOInterface.framework JavaEOInterfaceCocoa.framework JavaEOInterfaceSwing.framework JavaEOProject.framework

JavaEORuleSystem.framework JavaEOTool.framework

JavaFoundation.framework JavaJDBCAdaptor.framework JavaJNDIAdaptor.framework JavaWOExtensions.framework JavaWOJSPServlet.framework JavaWebObjects.framework JavaWebServicesClient.framework JavaWebServicesGeneration.framework JavaWebServicesSupport.framework JavaXML.framework

/System/Library/PrivateFrameworks/JavaMonitor.framework /System/Library/PrivateFrameworks/EOPlaceholders.framework /System/Library/WebObjects/JavaApplications

/System/Library/WebObjects/WODocumentRoot /Library/WebObjects/Extensions/axis-ant.jar /Library/WebObjects/Extensions/axis.jar

/Library/WebObjects/Extensions/commons-discovery.jar /Library/WebObjects/Extensions/commons-logging.jar /Library/WebObjects/Extensions/jaxrpc.jar

/Library/WebObjects/Extensions/log4j-1.2.8.jar /Library/WebObjects/Extensions/saaj.jar

/Library/WebObjects/Extensions/wsdl4j.jar /Library/WebServer/Documents/WebObjects

(cette liste peut contenir quelques jar, répertoires en plus et/ou non WebObjects) Pour obtenir le runtime il suffit d'installer XCode.

Ensuite le principe est d'avoir l'arborescence correspondant à /System dans $NEXT_ROOT et /Library dans $NEXT_ROOT/Local.

NEXT_ROOT est une variable d'environnement utilisée par les scripts pour trouver les éléments du runtime et construire le CLASSPATH.

Ainsi NEXT_ROOT correspond au répertoire dans lequel il faudrat copier l'arborescence.

(7)

2. UNIX

L'installation sous Unix est générique, WebObjects 5.X n'est que du Java. WebObjects peut fonctionner sous Solaris, FreeBSD, Linux du moment qu'un JRE 1.5 est disponible (une version de Sun).

Etape n°1:

Il faut :

• installer la JVM 1.5 d'Oracle (anciennement Sun), attention: ne pas avoir gcj dans le path, n'y d'OpenJDK !

• récupérer les éléments du runtime ( webobjects_5.3.3.tgz )

• décompresser l'archive, dans /opt par exemple, un répertoire webobjects_5.3.3 est créé

• positionner la variable d'environnement NEXT_ROOT : export NEXT_ROOT=/opt/webobjects_5.3.3

le runtime WebObjects est maintenant utilisable.

Pour le déploiement il faut lancer les 2 daemons:

• wotaskd:$NEXT_ROOT/Library/WebObjects/JavaApplications/wotaskd.woa/

wotaskd -WOPort 1085

• JavaMonitor: $NEXT_ROOT/Library/WebObjects/JavaApplications/JavaMonitor.woa/

JavaMonitor -WOPort 56789 -WOApplicationName Monitor - WOLifebeatDestinationPort 1085

JavaMonitor ne doit être lancé que sur l'un des serveurs du "site", il n'est là que pour configurer les wotaskds et gérer les instances des applications.

(des exemples de scripts de démarrage pour le wotaskd et JavaMonitor basés sur StartStopDaemons du projet Debian sont disponibles)

Etape n°2:

Idéalement WebObjects ne doit pas fonctionner sous l'utilisateur root.

Donc créer:

• 1 groupe (pratique lorsque l'on a plusieurs utilisateurs afin qu'ils puissent lire les fichiers de l'autre)

ex: apple puis au choix:

• 1 utilisateurs pour l'exécution des processus et la mise a jours des applicatifs.

ex: apple ou wosrv

• 2utilisateurs (utilisation très sécuritaire):

• 1 utilisateur pour l'exécution des processus (mot de passe verrouillé) ex: wosrv

• 1 utilisateur pour la gestion des fichiers applicatifs (.woa, framework et jar) ex: woapp

(8)

Le ou les 2 utilisateurs ne sont pas privilégiés (ils n'ont pas forcement de shell, sftp peut suffir pour woapp) c'est pourquoi il faut changer les droits de certains répertoires.

Tout doit appartenir au root dans $NEXT_ROOT sauf ce qui est dans Local :

• wosrv a besoin d'écrire dans $NEXT_ROOT/Local/logs (fichiers de logs) et

$NEXT_ROOT/Local/Library/WebObjects/Configuration (fichier SiteConfig.xml )

• woapp a besoin d'écrire dans $NEXT_ROOT/Local/Library/WebObjects/Extensions

$NEXT_ROOT/LocalLibrary/WebObjects/Applications ce qui correspond à:

dans le cas d'un seul utilisateur:

mkdir -p $NEXT_ROOT/Local/logs

chown wosrv:apple $NEXT_ROOT/Local/logs

chown wosrv:apple $NEXT_ROOT/Local/Library/WebObjects/Configuration chown wosrv:apple $NEXT_ROOT/Local/Library/WebObjects/Extensions chown wosrv:apple $NEXT_ROOT/Local/Library/WebObjects/Applications

dans le cas de deux utilisateurs:

mkdir -p $NEXT_ROOT/Local/logs

chown wosrv:apple $NEXT_ROOT/Local/logs

chown wosrv:apple $NEXT_ROOT/Local/Library/WebObjects/Configuration chown woapp:apple $NEXT_ROOT/Local/Library/WebObjects/Extensions chown woapp:apple $NEXT_ROOT/Local/Library/WebObjects/Applications

Etape n°3:

• Remplacer les jar dans $NEXT_ROOT/Local/Library/WebObjects/Extensions avec ceux fournis dans Extensions.tgz

(certains sont rajoutés car utilisés par certaines applications Cocktail, d'autres changent juste de version)

tout les jar nécessaires ne sont pas fournis dans Extensions.tgz pour des raison de licences, il faut donc installer :

◦ le driver JDBC, il doit aussi être présent dans ORACLE_HOME/jdbc/lib choisir la version pour Java 1.5 (il est aussi disponible sur http://www.oracle.com/

technology/software/tech/java/sqlj_jdbc/index.html)

◦ ical4j.jar (http://ical4j.sourceforge.net ) (n'est utilisé que par certaines applications)

(cette opération est la seule spécificité Cocktail)

• modifier Library/Frameworks/JavaWebObjects.framework/Resources/

WebServerConfig.plist

la valeur de WOAdaptorURL doit correspondre à l'URL (du point de vue du client qui va ce connecter) de votre serveur http où sera installé mod_WebObjects. Donc normalement cela doit être doit correspondre ServerName dans la configuration Apache du vhost, par exemple seveur.domaine.tld.

• créer $NEXT_ROOT/Local/Library/WebObjects/Applications/Frameworks/ , les frameworks non Apple devront y être installé.

• ajouter des scripts de lancement dans /etc/init.d (start-stop-daemon du projet Debian est recommandé, voir scripts d'exemples dans scripts.tgz)

• mettre un password dans le JavaMonitor

(9)

• il est recommandé d'utiliser d'autres ports que ceux par défaut 1085 et 56789 même si seul Apache doit avoir accès aux ports des applications.

• enfin tout les "HOSTS" déclarés dans le monitor dans l'onglet du même nom doivent être correctement déclaré dans /etc/hosts , avec leur FQDN, pour vérifier faire sur chaque serveur: hostame -f,

(le fichier /etc/hosts doit être utilisé en premier lors de la résolution de noms, voir nsswitch.conf).

• si vous n'avez qu'un seul serveur WebObjects utilisez 127.0.0.1 comme Host.

• vous pouvez déclarer pour le Host l'adresse IP plutôt que le nom

(dans le cas de plusieurs adresses IP sur le serveur déclarer celle qui sera utilisée par Apache)

• $NEXT_ROOT/Library/WebObjects/JavaApplications/wotaskd.woa/Contents/

Resources/SpawnOfWotaskd.sh est le script utilisé par le wotaskd pour lancer les applications. Il est recommandé de le modifier pour rediriger stdout et sdterr vers un fichier de logs afin d'avoir une première source d'information lorsqu'une

application ne démarre pas. On peut changer pour:

/bin/bash $@ 2>&1 1>> $NEXT_ROOT/Local/logs/webobjects.log &

Il est possible d'avoir plusieurs installations, il faut simplement multiplier les NEXT_ROOT, avoir plusieurs scripts de démarrage et éventuellement créer plusieurs groupes/utilisateurs.

Il faudra faire attention aux ports utilisés (l'utilisation d'une adresses IP par NEXT_ROOT est possible, il faudra alors lancer toutes les applications avec -WOHost x.y.z.w).

3. OS X Leopard et Snow Leopard

Leopard Desktop et Snow Leopard

Etant donné qu'il n'y a plus WebObjects par défaut il faut simplement recopier le runtime au même endroit.

Il faut éventuellement créer des .plist et des users pour Launchd. Attention les permissions sur les .plist doivent être 644 pour system/wheel/everyone sinon launchctl de faire une erreur du type "dubious permissions".

Ne pas oublier que la version de Java supportée par WebObjects 5.3 est la 1.4.2 mais fonctionne très bien avec Java 1.5

Leopard Server

Le principe est de "downgrader" de la 5.4 vers la 5.3 ou plus exactement pouvoir passer d'une version à une autre. Pour cela créer 2 répertoires là où il y a des éléments

WebObjects, un pour chaque versions. Pour la version qui doit être utilisée il faut faire des liens symboliques (ou copie) vers les éléments du répertoire correspondant à la bonne version

Ainsi pour les éléments de /System/Library/Frameworks/ créer 2 répertoires : mkdir /System/Library/Frameworks/WebObjects54

mkdir /System/Library/Frameworks/WebObjects53

(10)

ensuite pour passer d'une version à une autre:

for framework in `ls /System/Library/Frameworks/WebObjects5X`;

do

rm /System/Library/Frameworks/$framework;

ln -sf /System/Library/Frameworks/WebObjects5X/$framework /System/Library/

Frameworks/$framework;

done

il en va de même pour les autres éléments du runtime, ils ne sont pas nécessaires au lancement d'applications Cocktail sauf ce qui concerne les jar dans Extensions (axis.jar notamment).

Il est a noter que WebObjects version 5.3 fonctionne avec une JVM 1.4.2 ou 1.5 alors que la version 5.4 avec une JVM 1.5 ou 1.6. Il faut donc penser à changer de JVM.

(il est possible de changer dans les .woa/Contents/MacOS/*.txt l'exécutable java à utiliser) Le wotaskd et JavaMonitor peuvent être lancé en vesion 5.4 et lancer/gérer des applications en 5.3 (les 2 daemons n'ont pas évolué depuis la 5.2 où si c'est le cas ils communiquent toujours de la même manière au niveau heartbeat et DirectAction)

Remarque

Avec les dernières version d'OS X et sur les machines récentes le démarrage du wotaskd et du javamonitor peut avoir lieux avant le démarrage du réseau ce qui les rend non

fonctionnel. Le palliatif est de modifier les scripts shell (ceux dans les .woa) et d'y rajouter un sleep juste avant la ligne "eval exec" .

(11)

Conclusion

L'installation de WebObjects 5.3 est simple, il faut juste avoir un JRE 1.5 d'installé, décompresser l'archive et exporter NEXT_ROOT. Pour du confort et de la sécurité il faut créer des utilisateurs et des scripts de lancement.

Références

Documents relatifs

[r]

Da akidi a immaeyyed akidi eyyed Necc iëupen lxarij s weqrab ixeyyeä. Kkiv akides am

Izul uṯaras netta ḏ tameggit iness, it wassen zzays, qqarn-asd zzays ḏi twacunt nnes ṯamezyant niɣ ḏi ṯwacunt tameqrant ḏeg ayḍuḍ niġ deg talesa (humanité) u netta ḏ

Si le format est erroné, n'envoyez pas l'information au serveur, modifié le DOM afin d'y ajouter un message d'erreur, sélectionnez le champ pour l'entrée de

We will first derive a relationship for the vortex aspect ratio (vertical half-thickness over horizontal length scale) for steady and slowly evolving vortices in rotating

Clique sur Build circuit après Vérifier le fonctionnement de circuit avec un clique sur la main puis changer les combinaisons. (b)idem pour circuit decoder pour Faire la synthèse

Si j’entends le son «in», je précise où je l'entends dans le mot (dans la 1ère, 2ème ou 3ème syllabe).. Compétence : Lire des mots contenant le son «

Un homme et sa femme vivaient dans une petite maison, tout près de la forêt. Avec les grains de blé, la femme fait de la farine, puis avec la farine, elle fait une galette.