Commande wsenhancer

L'outil d'extension d'entité (entity enhancer) pour applications JPA (Java™ Persistence API) insère du code intermédiaire (bytecode) dans un fichier de classe d'entité prenant en charge le fournisseur JPA pour gérer l'état d'une entité. Use this command-line tool to enhance entities under the Java™ Persistence API (JPA) 2.0 specification provider, WSJPA/OpenJPA, for WebSphere Application Server.

Utilisée avec le serveur d'applications, l'API JPA requiert que toutes les classes d'entité soient étendues si vous souhaitez gérer leur état. Dans un environnement géré par conteneur, l'extension automatisée est fournie par les conteneurs. Toutefois, dans un environnement Java SE, qui n'inclut aucun conteneur pour la gestion de la persistance, vous pouvez utiliser cette commande fréquemment avant la mise en forme des fichiers d'application afin d'effectuer des tests. Après avoir créé les entités JPA, vous pouvez exécuter l'outil wsenhancer pour injecter du code intermédiaire dans les entités avant d'empaqueter le fichier JAR dans le fichier EAR de l'application.

Syntaxe

Avant d'exécuter la commande, vous devez disposer d'une copie du fichier persistence.xml dans le chemin d'accès aux classes ou l'indiquer en tant que fichier de propriétés via l'argument -p [chemin_vers_persistence.xml]. Lancez la commande à partir du sous-répertoire bin du répertoire racine_profil.

La syntaxe de la commande est la suivante :

[AIX][HP-UX][Linux][Solaris][z/OS]
wsenhancer.sh [parameters][arguments]
[IBM i]
wsenhancer [parameters][arguments]
[Windows]
wsenhancer.bat [parameters][arguments]

Paramètres

L'outil d'extension d'entité accepte le jeu standard d'arguments de ligne de commande définis par la structure de configuration, ainsi que les arguments suivants :
  • -directory/-d <répertoire sortie> : indique le chemin du répertoire de sortie.

    Si le répertoire ne correspond pas au package de la classe étendue, la structure du package est créée sous le répertoire. Par défaut, l'outil d'extension remplace le fichier .class d'origine.

  • -enforcePropertyRestrictions/-epr <true/t | false/f> : indique si une exception doit être générée lorsqu'une entité d'accès aux propriétés n'obéit pas aux restrictions relatives à l'accès aux propriétés.

    La valeur par défaut est false.

  • -addDefaultConstructor/-adc <true/t | false/f> : indique que toutes les classes persistantes définissent un constructeur sans argument. Cet indicateur indique à l'outil d'extension s'il doit ajouter un constructeur sans argument et protégé dans les classes persistantes dans lesquelles le constructeur n'est pas déjà présent.
  • -tmpClassLoader/-tcl <true/t | false/f> : indique si l'outil d'extension doit charger des classes persistantes avec un chargeur de classe temporaire.

    Cette fonction autorise un autre code à charger la version étendue de la classe ultérieurement dans la même machine virtuelle Java (JVM). La valeur par défaut est true.

    Eviter les incidents Eviter les incidents: Si vous rencontrez des incidents lors du chargement des classes pendant l'exécution de l'outil d'extension, vous pouvez régler cet indicateur à false lors du débogage.gotcha
  • Pour le nom de classe, indiquez l'une des valeurs suivantes :
    • le nom complet d'une classe,
    • le nom .java d'une classe,
    • le fichier .class d'une classe.
Si vous n'indiquez pas d'argument pour l'outil d'extension, il s'exécute sur les classes de la liste des classes persistantes.

Utilisation

Pour pouvoir utiliser l'outil wsenhancer, vos entités doivent être définies conformément à la spécification JPA et elles doivent être compilées. Exécutez l'outil wsenhancer sur les entités avant de les empaqueter dans un fichier JAR. Si les entités sont déjà empaquetées, vous devez extraire leurs fichiers de classe, exécuter l'outil d'extension et recréer le fichier JAR.

Pour étendre les entités, procédez comme indiqué ci-après.
  • Vérifiez que les entités figurent dans le chemin d'accès aux classes ; si tel n'est pas le cas, ajoutez-les.
  • Exécutez la commande wsenhancer. Elle se trouve dans le répertoire racine_profil/bin.
Les messages et les erreurs sont consignés dans la console d'administration comme indiqué dans les paramètres de journalisation. Une fois la commande wsenhancer appelée, les fichiers sont étendus.

Exemples

Pour étendre toutes les entités dans le chemin de classes :

[AIX][HP-UX][Linux][Solaris][z/OS]
$ cd build
/home/user/myproject/build $ ${profile_root}/bin/wsenhancer.sh
[IBM i]
$ cd build
/home/user/myproject/build $ ${profile_root}/bin/wsenhancer
[Windows]
C:\myproject\cd build
C:\myproject\build>%profile_root%\bin\wsenhancer.bat 

Toutes les entités dans monprojet sont étendues.

Pour étendre une entité spécifique lorsque vous disposez des fichiers source :

[AIX][HP-UX][Linux][Solaris][z/OS]
$ cd build
/home/user/myproject/build $ ${profile_root}/bin/wsenhancer.sh Magazine.java
[IBM i]
$ cd build
/home/user/myproject/build $ ${profile_root}/bin/wsenhancer Magazine.java
[Windows]
C:\myproject\cd build
C:\myproject\build>%profile_root%\bin\wsenhancer.bat Magazine.java

Pour étendre une entité spécifique lorsque vous disposez des fichiers de classe compilés :

[AIX][HP-UX][Linux][Solaris][z/OS]
$ export CLASSPATH=target/classes
$ ${profile_root}/bin/wsenhancer.sh /bin/wsenhancer.sh target/classes/jpa/example/MyEntity.class
[IBM i]
$ export CLASSPATH=target/classes
$ ${profile_root}/bin/wsenhancer target/classes/jpa/example/MyEntity.class
[Windows]
C:> cd build
C:\build> SET CLASSPATH=target\classes
C:\build>%profile_root%\bin\wsenhancer.bat \bin\wsenhancer.bat target\classes\jpa\example\Magazine.class

L'entité Magazine.java située dans le projet est étendue.

Informations supplémentaires

Pour plus d'informations sur les outils d'extension, reportez-vous à la section relative aux classes persistantes dans la documentation d'Apache OpenJPA.


Icône indiquant le type de rubrique Rubrique de référence



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rejb_wsenhancer
Nom du fichier : rejb_wsenhancer.html