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

Java 尝试连接到Wildfly 10.1上的EJB并获取:会话id';没有为有状态组件设置,java,ejb,jboss7.x,wildfly-10,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();

我正在使用以下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);
在尝试连接有状态的bean时,我遇到以下错误:

Session id hasn't been set for stateful component:

原因可能是什么?

因为它是一个有状态bean,所以必须添加会话id,这可以通过使用注释
?有状态的
以及
视图类名
来完成

因此,代码应更改为:

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