2013-03-20 4 views
2

Есть ли способ, которым мы можем каким-либо образом просматривать содержимое динамически сгенерированных классов Java (например, прокси, сгенерированных JDKProxy или CGLIB) - например, в режиме отклика eclipse или распечатывать его в журнале файл по требованию?Просмотреть содержимое динамически сгенерированных классов java

+0

Какой контент? И почему? – NilsH

+0

Кажется, я получаю исключение NullPointerException в сгенерированном коде и хочу знать, как его понять. Знание содержимого кода, вероятно, поможет дать некоторое представление о том, почему появился NPE? – Kilokahn

+0

Прокси - динамические. Они реализуют интерфейс (или несколько раз класс, используя CBLib), на основе отражения. Таким образом, нет «сгенерированного исходного кода», если это то, что вам нужно. В прокси-сервере JDK у вас есть обработчик вызова, который «реализует» прокси-сервер. Я не использовал CBLIB так много, но у них, вероятно, есть аналогичная концепция. Поэтому, если вы получаете NPE, скорее всего, это вызвано чем-то в вашем существующем коде. Показывая нам код, и ошибка может быть более полезной. – NilsH

ответ

0

Работает ли он без настроек? Я предлагаю вам снова взглянуть на документацию для ProceedingJoinPoint.proceed(), а затем сравнить ее с тем, что делают ваши аспекты.

Edit: Вот подсказка

@Aspect 
public class AstralMethodInterceptor { 

    private static final Logger LOG = LoggerFactory 
      .getLogger(AstralMethodInterceptor.class); 

    @Around("(execution(* com.kilo.proxyproxy.*.*(..)) || execution(* net.webservicex.*.*(..)))") 
    public void handleMethod(ProceedingJoinPoint pjp) throws Throwable { 
     LOG.info("I encountered astral method in " 
      + pjp.getThis().getClass().getCanonicalName()); 
     pjp.proceed(); 
    } 
} 
Смежные вопросы