2013-03-20 1 views
2

Eclipse 디버거보기 에서처럼 동적으로 생성 된 Java 클래스 (JDKProxy 또는 CGLIB에서 생성 된 프록시와 같은)의 내용을 볼 수있는 방법이 있습니까? 파일을 요청하면?동적으로 생성 된 Java 클래스의 내용보기

+0

이야? 그리고 왜? – NilsH

+0

생성 된 코드에서 NullPointerException이 발생하는 것 같으며이를 이해하는 방법을 알고 싶습니다. 코드의 내용을 알면 NPE가 왜 나타나는지 쉽게 알 수 있습니다. – Kilokahn

+0

프록시는 동적입니다. 그들은 리플렉션을 기반으로 한 인터페이스 (또는 CBLib를 사용하는 경우 클래스)를 구현합니다. 그 결과라면 "생성 된 소스 코드"가 없습니다. JDK 프록시에는 프록시를 "구현"하는 호출 핸들러가 있습니다. 나는 CBLIB를 그다지 사용하지 않았지만 아마 비슷한 개념을 가지고있을 것입니다. 따라서 NPE를 얻으면 기존 코드의 내용으로 인해 발생할 가능성이 큽니다. 코드와 오류를 표시하면 도움이 될 수 있습니다. – NilsH

답변

0

애스 팩트를 구성하지 않아도 작동합니까? 다시 ProceedingJoinPoint.proceed()에 대한 설명서를 살펴본 다음 실제로 그 모습을 비교해 보는 것이 좋습니다.

편집 : 여기에 힌트 어떤 콘텐츠

@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(); 
    } 
}