Comando wsenhancer
A ferramenta otimizadora de entidade para os aplicativosJava™ Persistence API (JPA) insere o bytecode em um arquivo de classe de entidade que suporta o provedor JPA para gerenciar o estado de uma entidade. Use essa ferramenta da linha de comandos para aprimorar entidades no provedor de especificação Java™ Persistence API (JPA) 2.0, WSJPA/OpenJPA, para WebSphere Application Server.
A JPA com o servidor de aplicativos requerem que todas as classes de entidades sejam aprimoradas para que seu estado seja gerenciado. Em um ambiente gerenciado por contêiner, o aprimoramento automatizado é fornecido pelos contêineres. Em um ambiente Java SE, entretanto, não há contêineres para gerenciar persistência e você poderá usar este comando com frequência antes de compactar os arquivos de aplicativo para teste. Depois de ter criado as entidades JPA, você poderá executar a ferramenta wsenhancer para injetar o bytecode nas entidades antes de compactar o arquivo Java archive (JAR) no arquivo enterprise archive (EAR) para o aplicativo.
Sintaxe
A sintaxe de comandos é a seguinte:
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
![[Solaris]](../images/solaris.gif)
![[z/OS]](../images/ngzos.gif)
wsenhancer.sh [parameters][arguments]
![[IBM i]](../images/iseries.gif)
wsenhancer [parameters][arguments]
![[Windows]](../images/windows.gif)
wsenhancer.bat [parameters][arguments]
Parâmetros
- -directory/-d <output directory>:
Especifica o caminho para o diretório de saída.
Se o diretório não corresponder ao pacote de classe aprimorado, a estrutura do pacote será criada sob o diretório. Por padrão, o otimizador sobrescreve o arquivo .class original.
- -enforcePropertyRestrictions/-epr <true/t
| false/f>: Especifica se uma exceção é gerada quando uma entidade
de acesso à propriedade não estiver obedecendo às restrições que são colocadas
no acesso de propriedade.
O padrão é configurado para false.
- -addDefaultConstructor/-adc <true/t | false/f>: Especifica que todas as classes persistentes definem um construtor de não argumento. Este sinalizador informa ao otimizador para incluir um construtor de nenhum argumento protegido em qualquer classe persistente na qual o construtor ainda não esteja presente.
- -tmpClassLoader/-tcl <true/t |
false/f>: Especifica se o otimizador deve carregar classes persistentes
com um carregador de classes temporário.
Esta função suporta outro código para carregar versão aprimorada da classe posteriormente na mesma Java virtual machine (JVM). O padrão é configurar como true.
Evitar Problemas: Se você estiver tendo problemas de carregamento de classe quando executar o otimizador, poderá configurar este sinalizador para false como uma etapa de depuração.gotcha
- Para o nome de classe, especifique um dos seguintes:
- O nome completo de uma classe.
- O nome .java de uma classe.
- O arquivo .class de uma classe.
Uso
Para usar a ferramenta wsenhancer, são necessárias entidades definidas nas especificações JPA e as entidades devem ser compiladas. Execute a ferramenta wsenhancer nas entidades antes de compactá-las em um arquivo JAR. Se as entidades já estiverem compactadas, extraia os arquivos de classe de entidade, execute o otimizador e recrie o arquivo JAR.
- Verifique se suas entidades estão no caminho de classe e inclua-as se elas não estiverem.
- Execute o comando wsenhancer. Ele está localizado no diretório profile_root/bin.
Exemplos
Para aprimorar todas as entidades no caminho da classe:
![[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 $ ${profile_root}/bin/wsenhancer.sh
![[IBM i]](../images/iseries.gif)
$ cd build
/home/user/myproject/build $ ${profile_root}/bin/wsenhancer
![[Windows]](../images/windows.gif)
C:\myproject\cd build
C:\myproject\build>%profile_root%\bin\wsenhancer.bat
Todas as entidades em myproject foram aprimoradas.
Para aprimorar uma entidade específica quando você tiver os arquivos de origem:
![[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 $ ${profile_root}/bin/wsenhancer.sh Magazine.java
![[IBM i]](../images/iseries.gif)
$ cd build
/home/user/myproject/build $ ${profile_root}/bin/wsenhancer Magazine.java
![[Windows]](../images/windows.gif)
C:\myproject\cd build
C:\myproject\build>%profile_root%\bin\wsenhancer.bat Magazine.java
Para aprimorar uma entidade específica quando você tiver os arquivos de classe 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
$ ${profile_root}/bin/wsenhancer.sh /bin/wsenhancer.sh target/classes/jpa/example/MyEntity.class
![[IBM i]](../images/iseries.gif)
$ export CLASSPATH=target/classes
$ ${profile_root}/bin/wsenhancer target/classes/jpa/example/MyEntity.class
![[Windows]](../images/windows.gif)
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
A entidade Magazine.java localizada no projeto está aprimorada.
Informações Adicionais
Para obter informações adicionais sobre as ferramentas de aprimoramento, consulte a sessão sobre classes persistentes na documentação do Apache OpenJPA.