私はJBoss AS 6からJBoss AS 7への移行プロセスに入っており、テストに問題があります。のは、簡単なエンティティEJBを想定してみましょう:JBoss AS 7のPersistenceExceptionまたはConstraintViolationExceptionをキャッチ
私@Stateless Bean
で
@Entity public class MyTest implements Serializable
{
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private long id;
@NotNull
private String headline;
} //getter/setter
私は(前JBoss5とJBoss6付きなど)このような何かをやっている:
@Inject private EntityManager em;
public <T extends Object> T persist(T o) throws MyContraintViolationException
{
System.out.println("***************** persist:");
try
{
em.persist(o);
}
catch (Exception e)
{
System.out.println("*************** exception:");
// Further investigation of Exception e,
// then throw MyContraintViolationException
}
}
私は違反していない場合、これが正常に動作します@NotNull
という制約があります。 headline==null
場合、私は例外を取得しますが、私のcatch
ブロック入力しないでん:
12:19:45 INFO ******************** persist:
12:19:45 WARN [com.arjuna.ats.arjuna] (management-handler-threads - 2)
ARJUNA012125: TwoPhaseCoordinator.beforeCompletion - failed for
SynchronizationImple< 0:ffffc0a801fb:4f969a6e:4f058744:9,
org.hibernate.engine.transaction.synchronization.internal.
[email protected] >: javax.persistence.PersistenceException:
error during managed flush
...
Caused by: javax.validation.ConstraintViolationException: Validation failed for
classes [my.test.MyTest] during persist time for groups
[javax.validation.groups.Default, ] List of constraint violations:[
ConstraintViolationImpl{interpolatedMessage='kann nicht null sein',
propertyPath=headline, rootBeanClass=class my.test.MyTest,
messageTemplate='{javax.validation.constraints.NotNull.message}'}
私は、エラーメッセージは、JBossの以前のバージョンよりもはるかに詳細であることを見て幸せを、どのように私がすることができますキャッチa javax.validation.ConstraintViolationException
と私自身のMyContraintViolationException
スロー?デバッグメッセージ***** exception
でもはではありません。