jboss ejb组件重新部署的问题,板桥大哥能解答下吗?

06-08-11 lxx8402

容器:jboss4.03

EJBModule1.jar

ChangeEJB.class

ChangeEJBBean.class

ChangeEJBHome.class

ChangeEJBLocal.class

ChangeEJBLocalHome.class

EJBModule2.jar

TestEJB.class

TestEJBBean.class

TestEJBHome.class

TestEJBLocal.class

TestEJBLocalHome.class

其中TestEJBBean有个方法调用了ChangeBean方法,如:

public String getNoInitChangeEJBName() {

InitialContext context = null;

try {

context = new InitialContext();

ChangeEJBLocalHome changeHome = (ChangeEJBLocalHome) context.lookup(

"java:comp/env/ejb/ChangeEJB");

ChangeEJBLocal changeEJB = changeHome.create();

return changeEJB.getName();

}

catch (NamingException ex) {

ex.printStackTrace();

}

catch (CreateException ex) {

ex.printStackTrace();

}

return "change EJB is null";

}

第一次调用是成功的,没有问题,但是当EJBModule1.jar重新热部署之后,调用就会出错,不知道为什么?

banq
2006-08-14 18:49

重新部署EJBModule2即可。

问题不是很清楚,大概和应用服务器的classloader策略有关。

lxx8402
2006-08-14 21:49

是的,重新部署EJBModule2是可以的,我也测试过,我遇到的问题是EJBModule2确不能随便重新部署(比如:有静态变量 ),不知道有没有其他的方法解决这个问题?

banq
2006-08-15 18:18

EJB中最好不要使用有静态变量 单态 文件写等