java.io.NotSerializableException:org.springframework.dao.support.PersistenceExceptionTranslationInterceptor

问题描述

我们的应用程序是spring boot + primefaces + spring security,我们计划将认会话管理移至与jdbc进行集群ENV的spring会话。

x.c

一个与jdbc的Spring会话,除了可序列化的对象之外,这就是为什么实现了类和一些不需要序列化的对象的Serializable接口的原因,我使用了瞬态关键字。请让我知道为什么该类org.springframework.dao.support.PersistenceExceptionTranslationInterceptor除外序列化

        @ManagedBean
        @SessionScoped
        public class TabbedViewBean implements Serializable{
            
            @ManagedProperty("#{loginService}")
            private LoginService loginService;
            @ManagedProperty("#{loggedUser}")
            private LoggedUser loggedUser;
        
            @ManagedProperty("#{loadLoggedUserObjectService}")
            private LoadLoggedUserObjectService loadLoggedUserObjectService;
            @ManagedProperty("#{commonInfoService}")
            private CommonInfoService commonInfoService;
        
            @ManagedProperty("#{commonService}")
            private transient CommonService commonService;
        
            @ManagedProperty("#{commonDao}")
            private CommonDao commonDao;
            @ManagedProperty("#{userStorePrivilegeServiceImpl}")
            private UserStorePrivilegeServiceImpl userStorePrivilegeServiceImpl;
                
            @postconstruct
            public void init() {
        
                if (true) {
                    UserPrivilegeInfo userPrivilegeInfo = null;
                    String username = SecurityContextHolder.getContext().getAuthentication().getName();
                    System.out.println("loginService" + loginService);
                    User user = loginService.getUser(username,true);
                    Set<UserPrivilegeInfo> privileges = user.getUserPrivilegeInfos();
                    for (UserPrivilegeInfo privilege : privileges) {
                        if (privilege.isPrimaryPrivilege() && privilege.isLastLogin()) {
                            userPrivilegeInfo = privilege;
                        }
                    }
                    System.out.println("jhdjg" + userPrivilegeInfo.getEmployee().getEmpId());
                    allroles = loginService.getUserRoles(userPrivilegeInfo.getEmployee().getEmpId());
                    System.out.println("fdfdf" + allroles.size());
                    List<UserStorePrivilegeInfo> uspis = userStorePrivilegeServiceImpl
                            .getUserStoreByEmp(userPrivilegeInfo.getEmployee().getEmpId(),null,false);
                    System.out.println("dfsdf:: " + uspis.size());
                    List<String> roles = new ArrayList<>();
        
                    loggedUser.setRoles(allroles);
                    loadLoggedUserObjectService.updateLoggedUserData(user,roles,loggedUser,userPrivilegeInfo,privileges,uspis);
                            
        
                }
        
                
                    
            }
        
            
        
        }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)