1.EJB事务
EJB和spring事务都只能对RuntimeException进行事务回滚,所以要进行事务回滚的BO要throw RMSSysException而不是RMSAppException
现在的做法是在生成EJB代码时将RmsAppException 转换成EJBException。但是这样就在没有EJB容器时无法使用Spring的事务。所以还是要对BO异常做重构
2.Jdbc
目前JDBC主要是用Spring的JdbcTemplate,写了大量的rowmapper代码,建议以后的代码改成用用HIBERNATE对nativeSql的支持,如ResultSqlMapping、SqlQuery
3.EJB部署问题
控制台部署失败时,建议清除EJB缓存,重启ManagedServer
5.BO调用BO不能用Controller去get BO实例,必须用Spring注入bean
6.BO远程调用的接口参数及参数的属性中不能有接口和不可序列化的对象
7.EJB注释中的Helper-bean-id要与spring配置文件中的bean id 一致,特别注意大小写不要写错
8.不需要远程调用的接口就不需配置EJB注释
9.捕获Exception时要把原exception抛出如
try {
newDnLevel = dnLevelDao.create(level);
} catch (Exception e) {
throw new RMSAppException("020200", "创建号码等级异常",e);
}
10.调用Bo中的Create方法新创建一个PO之后必须使用新的返回值否则,新对象的ID会为null,在本机时因为在同一个虚拟机里不会报错,远程调用时就会出现