Java EJB服务接口兼容性的实践

Java EJB服务接口兼容性的实践,java,jakarta-ee,Java,Jakarta Ee,让我们想象一下,有一个远程接口用于在两个JavaEE7应用程序之间进行通信 public interface BusinessService { void hello(String name); String echo(String echoValue); } 由于某种原因,服务器JEE 7应用程序重新部署了该接口的一个新的不兼容版本,因为方法echo已被删除,客户端仍然依赖以前版本的BusinessService public interface Business

让我们想象一下,有一个远程接口用于在两个JavaEE7应用程序之间进行通信

public interface BusinessService {

    void hello(String name);

    String echo(String echoValue);    
}
由于某种原因,服务器JEE 7应用程序重新部署了该接口的一个新的不兼容版本,因为方法
echo
已被删除,客户端仍然依赖以前版本的
BusinessService

public interface BusinessService {

    void hello(String name);

    // no more echoing    
}
只要客户端从未调用
BusinessService#echo
,它是否仍然能够执行对
BusinessService#hello
的远程调用?

简短回答-是

如果客户端不使用此方法,这将是一个兼容的更改。否则,客户端将出现错误:

ejb.EJBException:在ejb上没有这样的方法echo(java.lang.String)