Простой
throw new WebApplicationException(400);
или любой другой
throw new ...
Получает бросок на javax.ejb.EJBException
с Caused by:
, являющимся исключением, которое вы только что бросили.При мониторинге журнала это является проблемой, потому что не каждое исключение печатает трассировку стека.Но EJBException делает это.>: (* 1009 *
Пожалуйста, поймите - EJBException вообще не влияет на приложение, а только на то, что печатает нежелательную трассировку стека при каждом генерируемом исключении.
Javadoc EJBException говорит:
Выдается исключение EJBException для сообщения о том, что вызванный бизнес-метод или метод обратного вызова не может быть завершен из-за непредвиденной ошибки (например, не удалось открыть соединение с базой данных).
Необходимо выполнитьбыть способ сохранить EJBException тихо ...
(обновление) Пример:
@Stateless
@Path("roads")
public class RoadsREST {
@PersistenceContext(unitName = "rd")
@GET
@Produces("application/json")
public List<NationalRoads> retrieve() {
CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
Root subs = cq.from(NationalRoads.class);
List<NationalRoads> roads = em.createQuery(cq).getResultList();
if (roads.isEmpty()) {
throw new WebApplicationException(404);
}
return roads;
}
}