2014-02-18 2 views
0

단계 재현 :getAnnotations는()입니다

  1. 는 EJB 프로젝트를 만듭니다. (예 : Project1의)
  2. (예 : Test.class라는 일) : 주석 클래스를 만듭니다

    @Retention(RetentionPolicy.RUNTIME) 
    public @interface Test { 
    
    } 
    
  3. 간단한 자바 프로젝트를 만듭니다. (예 : Project2)

  4. Project1에 ejb 종속성으로 Project1을 추가하십시오.
  5. (예 : TestModel) 간단한 클래스를 만들고 여기에 @Test 주석을 적용

    @Test 
    public class TestModel { 
        ... 
    } 
    
  6. 귀 프로젝트를 만듭니다. (예 : Project3)

  7. Project3에서 ejb-module을 만듭니다. (예 : Project3-ejb)

  8. Project3-ejb에 jar 종속성으로 Project2를 추가하십시오.
  9. 는 프로젝트 3 - EJB에 무 타이머를 만듭니다

    @Stateless 
    @LocalBean 
    public class Timer { 
    
        @Schedule(minute = "*", second = "*", hour = "*") 
    
        public void myTimer() { 
         try { 
          System.out.println(TestModel.class.getAnnotations().length); 
         } catch (SecurityException ex) { 
          logger.log(Level.SEVERE, null, ex); 
         } 
        } 
    } 
    
  10. 클린 구축하고 0 왜이 표시됩니다 서버 출력에서 ​​3 또는 4

를 글래스 피쉬하는 프로젝트 3를 배포?

답변

0

이 문제는 glassfish 서버에만 해당되는 것으로 나타났습니다. Jboss 서버에 Project3을 배포하면 서버 출력에 1이 표시됩니다. 글래스 피시 벌레입니다. 나는 티켓을 만들었습니다 : https://java.net/jira/browse/GLASSFISH-20990 또한 4 단계에서 Project1을 jar 종속성으로 추가하면 서버 출력에 1이 표시됩니다.