【发布时间】:2012-08-03 11:47:04
【问题描述】:
我正在尝试使用以下组件开始使用简单的 java ee 应用程序:JSF 2.0、JPA EclipseLink、Glasshfish 3。
这里有一些 sn-ps,backing bean:
@Inject
private ProductsFacade model;
public void saveRow(Products p) {
model.edit(p);
}
产品外观:
@Stateless
public class ProductsFacade extends AbstractFacade<Products> {
@PersistenceContext
private EntityManager em;
public void edit(Products entity) {
em.merge(entity);
}
....
Products 是一个带有 bean 验证注解的实体 bean。
现在,当用户填写表单不正确时,“model.edit”会抛出 EjbException,我会处理它
有了 catch,所以 saveRow 支持 bean 方法现在看起来不那么简洁了:
public void saveRow(Products p) {
try {
model.edit(p);
} catch (EJBException e) {
if(e.getCause().getClass().getName().equals("javax.validation.ConstraintViolationException")) {
handleConstraintViolation((ConstraintViolationException)e.getCause());
}
}
}
仍然 glassfish 日志充满了“警告:javax.ejb.EJBException”和很长的痕迹。 我有一些问题:
- 我的设置有多正确?我知道 jsf 应该处理 BeanValidation,但在我的情况下它没有。
- 如何禁用
EJBException警告,以免污染服务器日志 - 有更好的方法来处理 EjbException 吗?
【问题讨论】:
标签: jsf jakarta-ee jsf-2 glassfish-3 ejb-3.1