2014-08-31 4 views
0

Мне нужно добавить обработчик глобальных исключений в мой проект, чтобы поймать все неперехваченное исключение в контейнере EGB.EJB глобальный обработчик исключений

Я прочитал о методе, который использует новые потоки, чтобы поймать неперехваченные исключения, но это не поможет мне.

есть ли какие-либо другие идеи для EJB?

ответ

2

Нет API: s для глобальных исключений afaik, но рассмотрели ли вы использование interceptor для этого?

Класс перехватчик:

package test; 

import javax.interceptor.AroundInvoke; 
import javax.interceptor.InvocationContext; 


public class Interceptor { 

    @AroundInvoke 
    public Object exceptionHandler(InvocationContext ctx) throws Exception { 
     try { 
      return ctx.proceed(); 
     } catch (RuntimeException re) { 
      // Do something with the exception 
      throw re; 
     } 
    } 
} 

отображение перехватчик по умолчанию в EJB-jar.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" version="3.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"> 
    <interceptors> 
     <interceptor> 
      <interceptor-class>test.Interceptor</interceptor-class> 
     </interceptor> 
    </interceptors> 
    <assembly-descriptor> 
     <interceptor-binding> 
      <ejb-name>*</ejb-name> 
      <interceptor-class>test.Interceptor</interceptor-class> 
     </interceptor-binding> 
    </assembly-descriptor> 
</ejb-jar> 
Смежные вопросы