EJB 2.x 애플리케이션을 테스트하고있었습니다.ejb 모듈과 웹 모듈을 별도로 배포 할 때 Bean에 액세스 할 수 없습니까?
EJB 모듈 : 간단한 무 상태 세션 빈을
웹 모듈이 포함되어 EJB 모듈을 조회 할 수있는 단일 서블릿 페이지를 포함 I 별도로 2 모듈 를 만들었습니다. Jboss 4.2.3
을 사용하고있었습니다.
처음으로, 나는 EJB 모듈을 배포했으며 배포가 원활하게 진행되었습니다. 두 번째으로 웹 모듈을 배포했으며 배포가 원활하게 진행되었습니다.
는 다음 나는 EJB 모듈을 조회하기 위해 다음 코드를 사용 :Context c = new InitialContext();
Object o = c.lookup("HelloJNDI"); // Line 1
HelloLocalHome rv = (HelloLocalHome) o; // Line 2
HelloLocal local = rv.create();
는 검색이 잘 (Line 1
)했다,하지만 Line 2
클래스 캐스트 예외를 생산했다.
EAR module
로 EJB와 웹 모듈을 패키지
. 그런 다음이
EAR
모듈을JBoss 4.2.3
에 배포하고 위의 조회 코드는 매력처럼 작동했습니다.나는
JBoss 5
을 사용해 보았고 심지어 EJB 모듈과 웹 모듈을 개별적으로 배포했는데 위의 조회 코드는 훌륭하게 작동했습니다.
그렇다면 왜 JBoss 4에 2 개의 모듈을 별도로 배포했을까요? 2 개의 모듈이 같은 컨테이너에 배치 되었기 때문에 로컬 JNDI 조회 만 사용합니다. JBoss 4의 결함이 있습니까? 대신 캐스트의 다음 코드를 사용
는 ClassCastException의 전체 스택 (또는 적어도 메시지가) 무엇을 제거 할 수 있습니까? o.getClass(), o.getClass(). getClassLoader() 및 HelloLocalHome.class.getClassLoader()의 값은 무엇입니까? –