Befehl "wsenhancer"
Das Tool für Entitätserweiterungen für JPA-Anwendungen (Java™ Persistence API) fügt Bytecode in eine Entitätsklassendatei ein, der dem JAP-Provider die Verwaltung des Status einer Entität ermöglicht. Mit diesem Befehlszeilentool können Sie Entitäten unter dem JPA 2.0-Spezifikationsprovider (Java™ Persistence API) WSJPA/OpenJPA für WebSphere Application Server abrufen.
JPA mit dem Anwendungsserver erfordert, dass alle Entitätsklassen erweitert sind, wenn Sie ihren Status verwalten möchten. In einer containergesteuerten Umgebung wird die automatisierte Erweiterung von den Containern unterstützt. In einer Java SE-Umgebung gibt es jedoch keine Container, und Sie verwenden diesen Befehl möglicherweise häufig, bevor Sie Ihre Anwendungsdateien für Testzwecke packen. Nach der Erstellung der JPA-Entitäten können Sie das Tool "wsenhancer" verwenden, um Bytecode in die Entitäten einzufügen, bevor Sie die JAR-Datei in die EAR-Datei für die Anwendung packen.
Syntax
Der Befehl hat die folgende Syntax:
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
wsenhancer.sh [Parameter][Argumente]
![[IBM i]](../images/iseries.gif)
wsenhancer [Parameter][Argumente]
![[Windows]](../images/windows.gif)
wsenhancer.bat [Parameter][Argumente]
Parameter
- -directory/-d <Ausgabeverzeichnis>:
Gibt den Pfad des Ausgabeverzeichnisses an.
Wenn das Verzeichnis dem erweiterten Klassenpaket nicht entspricht, wird die Paketstruktur unterhalb dieses Verzeichnisses erstellt. Standardmäßig überschreibt das Erweiterungstool die ursprüngliche Datei mit der Erweiterung .class.
- -enforcePropertyRestrictions/-epr <true/t
| false/f>: Gibt an, ob eine Ausnahme generiert werden soll,
wenn eine Entität für den Zugriff auf Eigenschaften
nicht den Einschränkungen für den Eigenschaftenzugriff entspricht.
Die Standardeinstellung ist false.
- -addDefaultConstructor/-adc <true/t | false/f>: Gibt an, dass alle persistenten Klassen einen Konstruktor ohne Argumente definieren. Dieses Flag informiert das Erweiterungstool, wenn es allen persistenten Klassen, die noch keinen Konstruktor enthalten, einen geschützten Konstruktur ohne Argumente hinzufügen soll.
- -tmpClassLoader/-tcl <true/t | false/f>:
Gibt an, ob das Erweiterungstool persistente Klassen mit einem temporären Klassenlader laden soll.
Diese Funktion ermöglicht anderem Code, die erweiterte Version der Klasse anschließend in derselben Java Virtual Machine (JVM) zu laden. Die Standardeinstellung ist "true".
Fehler vermeiden: Treten bei der Ausführung des Erweiterungstools Probleme beim Laden von Klassen auf, können Sie dieses Flag im Rahmen eines Debugging-Schritts auf false setzen.gotcha
- Sie können bei der Angabe des Klassennamens zwischen den folgenden Optionen wählen:
- Vollständiger Name einer Klasse.
- Name mit der Erweiterung .java für eine Klasse.
- Datei mit der Erweiterung .class einer Klasse.
Syntax
Zur Verwendung des Tools "wsenhancer" benötigen Sie Entitäten, die gemäß JPA-Spezifikation definierte sind, und diese Entitäten müssen kompiliert werden. Führen Sie das Tool "wsenhancer" für die Entitäten aus, bevor Sie sie in eine JAR-Datei packen. Wenn die Entitäten bereits gepackt sind, müssen Sie die Entitätsklassendateien extrahieren, das Erweiterungstool ausführen und die JAR-Datei erneut erstellen.
- Vergewissern Sie sich, dass Ihre Entitäten im Klassenpfad vorhanden sind, und fügen Sie sie gegebenenfalls hinzu.
- Führen Sie den Befehl "wsenhancer" aus. Sie finden den Befehl im Verzeichnis Profilstammverzeichnis/bin.
Beispiele
Gehen Sie zum Erweitern aller Entitäten im Klassenpfad wie folgt vor:
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
$ cd build
/home/user/myproject/build $ ${Profilstammverzeichnis}/bin/wsenhancer.sh
![[IBM i]](../images/iseries.gif)
$ cd build
/home/user/myproject/build $ ${Profilstammverzeichnis}/bin/wsenhancer
![[Windows]](../images/windows.gif)
C:\myproject\cd build
C:\myproject\build>%profile_root%\bin\wsenhancer.bat
Alle Entitäten in "myproject" werden erweitert.
Gehen Sie wie folgt vor, um eine bestimmte Entität zu erweitern, wenn Sie die Quellendateien besitzen:
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
$ cd build
/home/user/myproject/build $ ${Profilstammverzeichnis}/bin/wsenhancer.sh Magazine.java
![[IBM i]](../images/iseries.gif)
$ cd build
/home/user/myproject/build $ ${Profilstammverzeichnis}/bin/wsenhancer Magazine.java
![[Windows]](../images/windows.gif)
C:\myproject\cd build
C:\myproject\build>%Profilstammverzeichnis%\bin\wsenhancer.bat Magazine.java
Gehen Sie wie folgt vor, um eine bestimmte Entität zu erweitern, wenn Sie die kompilierten Klassendateien besitzen:
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
$ export CLASSPATH=target/classes
$ ${Profilstammverzeichnis}/bin/wsenhancer.sh /bin/wsenhancer.sh target/classes/jpa/example/MyEntity.class
![[IBM i]](../images/iseries.gif)
$ export CLASSPATH=target/classes
$ ${Profilstammverzeichnis}/bin/wsenhancer target/classes/jpa/example/MyEntity.class
![[Windows]](../images/windows.gif)
C:> cd build
C:\build> SET CLASSPATH=target\classes
C:\build>%Profilstammverzeichnis%\bin\wsenhancer.bat \bin\wsenhancer.bat target\classes\jpa\example\Magazine.class
Die Entität "Magazine.java" im Projekt wurde erweitert.
Weitere Informationen
Weitere Informationen zu den Erweiterungstools finden Sie im Abschnitt zu persistenten Klassen in der Dokumentation von Apache OpenJPA.