Java 尝试连接到Wildfly 10.1上的EJB并获取:会话id';没有为有状态组件设置
我正在使用以下JNDI配置: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();
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";