2017-02-03 1 views
0

私のコードを難読化するためにobfuscator(ProGuard)を使用しています。私は2つのJ2EEプロジェクトEJBとWebProjectを持っています。現在私はEJB.jarプロジェクトのみを難読化しており、webservicesもホストしていますが、その部分に到達する前にエラーが発生しますProguardがorg.hibernate.AnnotationExceptionを引き起こします

ProGuard GUIアプリケーションを使用して出力jarを生成しましたが、サーバー(wildfly)それは私にこの例外を与えた:

org.hibernate.AnnotationException: No identifier specified for entity: com.metadatatool.b.a 

このb.aは、難読化コード元の名前が異なっていたです。

この例外は基本的にビュー、すなわちビューで呼び出され、コードを難読化しないと正常に動作しますが、私がこのエラーを出すのは@Idという識別子です。 ProGuardの-keep attributes機能を使用していますが、まだこのエラーが発生しています

答えて

0

EJBはリフレクションを使用しており、一部のクラスでは難読化を行ったときに元の名前、メソッド、

-keepattributes RuntimeVisibleAnnotations 
-keep @javax.persistence.* class * { 
    *; 
} 

は注釈を取り除かないと @Idで注釈を付けたクラスには手を触れないでProGuardのを作るために:あなたの問題を解決するには、次のようなルールのカップルを追加する必要があります。

関連する問題