尝试连接到Wildfly 10.1上的EJB并获取:没有为有状态组件设置会话ID

时间:2017-02-05 11:22:24

标签: java ejb jboss7.x wildfly-10

我正在使用以下JNDI配置:

    final String appName = "";
    final String moduleName = "session-beans";
    final String distinctName = "";
    final String beanName = "ItemStatefulRemote";
    final String viewClassName = ItemStatefulRemote.class.getName();
    final String toLookup = String.format("ejb:%s/%s/%s/%s!%s", appName, moduleName, distinctName, beanName, viewClassName);
    return (ItemStatefulRemote) context.lookup(toLookup);

尝试连接stateful bean时出现以下错误:

Session id hasn't been set for stateful component:

可能是什么原因?

1 个答案:

答案 0 :(得分:3)

由于它是有状态bean,因此必须添加会话ID,这可以通过使用注释?statefulviewClassName来完成。

所以代码应该改为:

 final String viewClassName = ItemStatefulRemote.class.getName()+"?stateful";