Mandato wsenhancer
La herramienta para la ampliación de entidad para las aplicaciones Java™ Persistence API (JPA) inserta código de bytes en un archivo de clase de entidad que admite el proveedor JPA gestionar el estado de una entidad. Utilice esta herramienta de línea de mandatos para mejorar entidades bajo el proveedor de la especificación Java™ Persistence API (JPA) 2.0, WSJPA/OpenJPA, para WebSphere Application Server.
JPA con el servidor de aplicaciones requiere que todas las clases de entidad se amplíen si se desea gestionar el estado de las mismas. En un entorno gestionado por contenedor, los contenedores proporcionan una ampliación automática. Sin embargo, en un entorno Java SE no hay contenedores para gestionar la persistencia y puede utilizar este mandato con frecuencia antes de empaquetar archivos de aplicación para su prueba. Después de haber creado las entidades JPA, puede ejecutar la herramienta wsenhancer para inyectar código de bytes en las entidades antes de empaquetar el archivo JAR (archivo Java) en el archivo EAR (archivador empresarial) para la aplicación.
Sintaxis
La sintaxis del mandato es la siguiente:
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
wsenhancer.sh [parámetros][argumentos]
![[IBM i]](../images/iseries.gif)
wsenhancer [parámetros][argumentos]
![[Windows]](../images/windows.gif)
wsenhancer.bat [parámetros][argumentos]
Parámetros
- -directory/-d <directorio_salida>:
especifica la vía de acceso al directorio de salida.
Si el directorio no coincide con el paquete de la clase ampliada, la estructura del paquete se creará debajo del directorio. De manera predeterminada, la herramienta de ampliación sobrescribe el archivo .class original.
- -enforcePropertyRestrictions/-epr <true/t | false/f>: especifica si se generará una excepción cuando una entidad de acceso de propiedad no cumpla las restricciones impuestas sobre el acceso de propiedad.
El valor predeterminado es false.
- -addDefaultConstructor/-adc <true/t | false/f>: especifica que todas las clases persistentes definen un constructor sin argumentos. Este distintivo informa a la herramienta de ampliación que debe añadir un constructor sin argumentos protegido a cualquier clase persistente en la que el constructor no esté ya presente.
- -tmpClassLoader/-tcl <true/t | false/f>: especifica si la herramienta de ampliación debe cargar las clases persistentes con un cargador de clases temporal.
Esta función da soporte al hecho que otro código cargue la versión ampliada de la clase posteriormente dentro de la misma JVM (máquina virtual Java. El valor predeterminado se establece en true.
Avoid trouble: Si encuentra problemas en la carga de clases al ejecutar la herramienta de ampliación, puede establecer este distintivo en false como un paso de depuración.gotcha
- Para el nombre de clase, especifique una de las opciones siguientes:
- El nombre completo de una clase.
- El nombre .java de una clase.
- El archivo .class de una clase.
Uso
Para utilizar la herramienta wsenhancer necesita entidades definidas en especificaciones JPA y las entidades deben compilarse. Ejecute la herramienta wsenhancer en las entidades antes de empaquetarlas en un archivo JAR. Si las entidades ya están empaquetadas, debe extraer los archivos de clase de entidad y volver a crear el archivo JAR.
- Verifique que las entidades se encuentran en la vía de acceso de clase y, si no lo están, añádalas.
- Ejecute el mandato wsenhancer. Se encuentra en el directorio raíz_perfil/bin.
Ejemplos
Para mejorar todas las entidades de la vía de acceso de clases:
![[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 $ ${raíz_perfil}/bin/wsenhancer.sh
![[IBM i]](../images/iseries.gif)
$ cd build
/home/user/myproject/build $ ${raíz_perfil}/bin/wsenhancer
![[Windows]](../images/windows.gif)
C:\myproject\cd build
C:\myproject\build>%raíz_perfil%\bin\wsenhancer.bat
Todas las entidades de myproject se amplían.
Para ampliar una entidad específica cuando dispone de los archivos de origen:
![[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 $ ${raíz_perfil}/bin/wsenhancer.sh Magazine.java
![[IBM i]](../images/iseries.gif)
$ cd build
/home/user/myproject/build $ ${raíz_perfil}/bin/wsenhancer Magazine.java
![[Windows]](../images/windows.gif)
C:\myproject\cd build
C:\myproject\build>%raíz_perfil%\bin\wsenhancer.bat Magazine.java
Para ampliar una entidad específica cuando dispone de los archivos de clase compilados:
![[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
$ ${raíz_perfil}/bin/wsenhancer.sh /bin/wsenhancer.sh target/classes/jpa/example/MyEntity.class
![[IBM i]](../images/iseries.gif)
$ export CLASSPATH=target/classes
$ ${raíz_perfil}/bin/wsenhancer target/classes/jpa/example/MyEntity.class
![[Windows]](../images/windows.gif)
C:>
cd build
C:\build> SET CLASSPATH=target\classes
C:\build>%raíz_perfil%\bin\wsenhancer.bat \bin\wsenhancer.bat target\classes\jpa\example\Magazine.class
La entidad Magazine.java ubicada en el proyecto se amplía.
Información adicional
Para obtener más información sobre las herramientas de mejora, consulte la sección sobre clases persistentes en la documentación de consulta de Apache OpenJPA.