2013-05-27 1 views
2

Bean 당 3 개의 인터페이스가있는 앱이 있습니다. 모든 메소드가 포함 된 *BI (비즈니스 인터페이스)은 BI으로 확장되고 @Local으로 주석 처리되고 *RI으로 주석 처리되며 BI까지 확장되지만 @Remote으로 주석 처리됩니다.@Local 및 @Remote 인터페이스 - 참조 및 대용량 복사

모든 *LI*RI 인터페이스를 *BI으로 제거하고 그 둘을 @Remote으로 남기고 싶지만 문제가 있습니다.

로컬 조회는 인수를 참조로 전달하고 원격 조회는 deepcopy를 사용합니다. 앱은 참조 기준 (참조로 작동하는 경우에만 작동하는 것)으로 가득 차 있습니다.

@Remote 인터페이스가있는 경우 컨테이너는 로컬 조회 일 때 컨테이너에서 알 수 있고이 경우 참조로 통과 작업을 수행합니까?

컨테이너는 JBoss AS 7.1.1 Final이며 EJB 3.1을 사용합니다. 미리 감사드립니다.

답변

2

로컬 및 원격 인터페이스는 로컬 클라이언트가 원격 인터페이스를 사용하려는 경우에도 다르게 동작합니다. 따라서 컨테이너가 "이 클라이언트가 동일한 VM에서 실행 중이므로 로컬 인터페이스를 제공 할 것"이라고 짐작하면 문제가됩니다.

차이점에 대한 자세한 내용은 이미 here에서 논의했습니다.

단순히 인터페이스 를 작성하고이 @Local@Remote 주석이 (빈) 인터페이스에서 상속 할 수 있도록 한 곳에서 모든 인터페이스 정의를 유지하려면

.

+0

글쎄, 내가 몇 가지 오래된 코드에서 작은 리팩토링을해야 할 것 같습니다 .. 감사합니다 =) – caarlos0