Ejb3 + Jboss8 出现Session id hasn't been set for stateful component

Ejb 3 + JBoss 8 

在使用客户端远程访问有状态的Ejb对象时,出现ERROR:

Session id hasn't been set for stateful component

出现该ERROR的原因是因为在访问有状态的Ejb对象时,没有在末尾加"?stateful"

获取Stateless: 
       String lookupStr = "ejb:" + appName + "/" + moduleName + "/"+ distinctName + "/" + beanName + "!" + viewClassName;

获取stateful:
       String lookupStr = "ejb:" + appName + "/" + moduleName + "/"+ distinctName + "/" + beanName + "!" + viewClassName+"?stateful";

(jboss7也有这个问题)

注:

final String appName = "";
// 部署的jar文件的名字
final String moduleName = "XXXX";
final String distinctName = "";
// 实现类的类名
final String beanName = "XXXXX";
// 接口类的全名
final String viewClassName = "XXXXX";

原文地址:https://www.cnblogs.com/welv/p/4963610.html