JNDI 조회를 사용하여 별도의 JVM에서 실행되는 클라이언트에서 원격 EJB3 Bean에 액세스하려고합니다. 다음 내 콩 클래스는 다음과 같습니다EJB3 원격 인터페이스를 클라이언트에서 사용 가능하게 만드는 방법은 무엇입니까?
는@Path("/payment/")
@Consumes({ "application/xml", "application/json" })
@Produces({ "application/xml", "application/json" })
@Local({ PaymentWebServiceLocal.class })
@Remote({ PaymentWebServiceRemote.class })
@Stateless(mappedName = "ejb/PaymentWebService")
public class PaymentWebServiceImpl implements PaymentWebServiceLocal,PaymentWebServiceRemote {
private static final Logger logger = Logger.getLogger(PaymentWebServiceImpl.class);
@POST
@Path("/processpayment")
public PaymentResponse processPayment(PaymentRequest request) {
//do something
}
빈의 원격 인터페이스는 I는 다음과 같이 원격 클라이언트에서 processPayment() 메소드를 호출하기 위해 JNDI를 사용하여 EJB를 조회, 지금
@Remote
public interface PaymentWebServiceRemote {
public PaymentResponse processPayment(PaymentRequest request);
}
을 다음과 같다
클라이언트가 원격 PaymentWebServiceRemote 인터페이스에 대해 모르겠다는 것이 이해가되지 않습니다. EJB Bean 코드가있는 다른 서버에 있습니다. 이 인터페이스의 사본을 클라이언트 코드에도 가져와야합니까? 아니면 클라이언트가 EJB3에서 사용하도록 원격 인터페이스를 사용하여 클라이언트 EJB jar를 만드는 방법이 있습니까 (EJB2에서와 같이)?
도움을 주시면 감사하겠습니다.
그래서 EJB2가 작동하는 것과 비슷합니다. – user3057702
EJB2.1과 EJB3.x는 모두 RMI/IIOP 프로토콜을 기반으로하므로 비슷합니다. – Diversity