Java序列化 / 调用 Wildfly 服务接口异常:EJBCLIENT000409

    公司的运营后台服务是 Wildfly ,遇到一些问题,网上查解决方案就没有 Tomcat 来的方便。(So,现在要换框架了)
    但是有一些坑了我好久的问题,我还是想记录一下。

    新写了几个接口,用来记录校验手机号异常流水的,测试的时候发现一直报异常:

EJBCLIENT000409: No more destinations are available

    按照以往的经验,我怀疑是 Wildfly 新写的接口没注册上,导致没找到。
    1、请先检查 Wildfly 接口注解有没有写漏、写错(@Remote、@BeanName(“实现类名称”)),以及实现类的注解(@Stateless、@TransactionManagement())

    2、检查接口参数、返回的实体类是否序列化了(implements Serializable
    用@Remote注解的类的接口参数和返回的对象类都需要序列化。

    Tips:查了下,Serializable 允许我们将对象转换为字节序列,这些字节序列可以被存储后重新生成原来的对象;Serializable 自动屏蔽了操作系统的差异、字节顺序等;Java 的 RMI(Remote method invocation 远程方法调用)允许我们可以像在本机上操作远程机器上的对象,当我们发送消息给远程对象时,就需要用到 Serializable 机制来发送和接受数据。

    3、查看 jboss-ejb-client.properties 配置文件的位置是否正确(这一点我没遇到过,我项目也不需要这个配置文件)
    一般情况放在 resources 目录下,不行的话,逐一尝试。

你可能感兴趣的