로컬 및 원격 EJB(Enterprise JavaBeans)를 위한 별도의 인터페이스 정의

하나의 인터페이스가 동시에 로컬 및 원격이 될 수는 없습니다. 그러나 단일 인터페이스 내에 모든 메소드를 정의한 후 해당 인터페이스를 확장하여 어노테이션 또는 요소에서 참조할 수 있는 개별 로컬 및 원격 인터페이스를 작성할 수 있습니다.

이 규칙은 동일한 클래스의 javax.ejb.Localjavax.ejb.Remote 어노테이션 둘 다에서 사용되는 인터페이스에 플래그를 지정합니다. 또한 ejb-jar.xml 파일의 동일한 session 요소 내에서 동일한 인터페이스를 참조하는 business-localbusiness-remote 요소에도 플래그를 지정합니다.

다음 Java 코드에서 MyInterface.class에 대한 참조는 javax.ejb.Localjavax.ejb.Remote 어노테이션에서 플래그가 지정됩니다.

공용 인터페이스 MyInterface () { .. }

@Stateless(이름 = "MyEJB")
@Remote(MyInterface.class) @Local(MyInterface.class) public final 클래스 MyEJB 는 MyInterface {
    ...
}

다음 ejb-jar.xml 파일에서 business-localbusiness-remote 요소에는 이 규칙에 의해 플래그가 지정됩니다.

<session> <ejb-name>MyEJB</ejb-name> <business-local>com.ibm.sample.MyInterface</business-local> <business-remote>com.ibm.sample.MyInterface</business-remote> <ejb-class>com.ibm.sample.MyEJB</ejb-class> < session-typegt; Stateless</session-type>
    < transaction-typegt; 컨테이너</transaction-type> </session>

이 문제를 해결하려면 인터페이스를 확장하여 개별 로컬 및 원격 인터페이스를 작성하고 어노테이션 또는 요소에서 그들을 참조하십시오.

public interface MyInterfaceLocal extends MyInterface() 
{ .. }
public interface MyInterfaceRemote extends MyInterface() 
{ .. }