当前位置: 首页 > news >正文

重庆网站关键词排名外贸订单网站推广

重庆网站关键词排名,外贸订单网站推广,wordpress特定页面重定向,wordpress展示文章目录 报错场景排查解决UnmodifiableList类介绍 报错场景 我们使用的是PostgreSQL数据库#xff0c;存储业务数据#xff0c;业务代码使用的是Spring JPA我们做的是智慧交通信控平台#xff0c;有个功能是查询展示区域的交通态势#xff0c;需要按照不同维度排序展示区… 文章目录 报错场景排查解决UnmodifiableList类介绍 报错场景 我们使用的是PostgreSQL数据库存储业务数据业务代码使用的是Spring JPA我们做的是智慧交通信控平台有个功能是查询展示区域的交通态势需要按照不同维度排序展示区域态势指标计算15分钟一次每次计算存储所有区域指标。我们的实时态势展示每次展示当前最新结果业务要求要按照区域交通流量、拥堵指数、拥堵里程分别倒序展示写在了一个接口里先查询后排序我们使用的默认自增的主键策略故获取最新一次区域态势结果可以使用id倒序按照区域数量获取查询的业务逻辑比较简单代码很快就写完了使用JPA查询语句构造查询和排序条件。得到查询结果list后再根据业务需要按照不同的字段排序但在部署测试环境后发现排序代码执行报错报错 null Not Implemented具体业务代码如下 /*** 获取所有区域实时态势* param targetIndex 排序字段* return */public ListSituationAnalysisRegion getCurrentRegionSituationList(String targetIndex) {// 获取所有子区ListSubRegion allSubRegions getAllSubRegion();MapInteger, SubRegion idSubRegionMap new HashMap();allSubRegions.forEach(e - idSubRegionMap.put(e.getId().intValue(), e));// 获取所有子区态势排名倒序SpecificationSituationAnalysisRegion specification (root, query, cb)-{ListPredicate predicates new ArrayList();predicates.add(cb.greaterThan(root.get(timeStamp).as(Instant.class), LocalDateTime.now().plusMinutes(-15).plusSeconds(-30).atZone(ZoneId.systemDefault()).toInstant()));Predicate[] pre new Predicate[predicates.size()];pre predicates.toArray(pre);return query.where(pre).getRestriction();};Sort orders Sort.by(id).descending();Pageable pageable PageRequest.of(0, allSubRegions.size(), orders);ListSituationAnalysisRegion situationAnalysisRegions analysisRegionRepository.findAll(specification, pageable).getContent();// 排序要求if (null targetIndex || StringUtils.isEmpty(targetIndex)) {situationAnalysisRegions.sort((o1, o2) - (int)(o2.getCongestionMileage() - o1.getCongestionMileage()));} else if (targetIndex.equals(trafficFlow)) {situationAnalysisRegions.sort((o1, o2) - o2.getTrafficFlow() - o1.getTrafficFlow());} else if (targetIndex.equals(congestionIndex)) {situationAnalysisRegions.sort((o1, o2) - (int)(o2.getCongestionIndex() - o1.getCongestionIndex()));} else {situationAnalysisRegions.sort((o1, o2) - (int)(o2.getCongestionMileage() - o1.getCongestionMileage()));}return situationAnalysisRegions;}具体报错日志如下 2023-08-29 16:12:56.168 ERROR 12860 --- [ XNIO-1 task-1] o.z.problem.spring.common.AdviceTraits : Not Implementedjava.lang.UnsupportedOperationException: nullat java.base/java.util.Collections$UnmodifiableList.sort(Collections.java:1332)at com.newatc.api.situationanalysis.service.SituationAnalysisRegionExtentService.getCurrentRegionSituationList(SituationAnalysisRegionExtentService.java:88)at com.newatc.api.situationanalysis.service.SituationAnalysisRegionExtentService.getRegionSituationList(SituationAnalysisRegionExtentService.java:104)at com.newatc.api.rest.SituationAnalysisController.getRegionSituationList(SituationAnalysisController.java:112)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.base/java.lang.reflect.Method.invoke(Method.java:566)at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1070)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)at javax.servlet.http.HttpServlet.service(HttpServlet.java:497)at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)at javax.servlet.http.HttpServlet.service(HttpServlet.java:584)at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)at com.newatc.api.redis.RequestFilter.doFilter(RequestFilter.java:58)at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.security.oauth2.client.web.OAuth2AuthorizationCodeGrantFilter.doFilterInternal(OAuth2AuthorizationCodeGrantFilter.java:168)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.security.oauth2.server.resource.web.BearerTokenAuthenticationFilter.doFilterInternal(BearerTokenAuthenticationFilter.java:125)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.security.oauth2.client.web.OAuth2AuthorizationRequestRedirectFilter.doFilterInternal(OAuth2AuthorizationRequestRedirectFilter.java:178)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:112)at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:82)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:117)at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)at io.undertow.servlet.handlers.SendErrorPageHandler.handleRequest(SendErrorPageHandler.java:52)at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)at io.undertow.servlet.handlers.SessionRestoringHandler.handleRequest(SessionRestoringHandler.java:119)at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:275)at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:79)at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:134)at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:131)at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:255)at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:79)at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:100)at io.undertow.server.Connectors.executeRootHandler(Connectors.java:387)at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:852)at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:2019)at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1558)at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1449)at org.xnio.XnioWorker$WorkerThreadFactory$1$1.run(XnioWorker.java:1282)at java.base/java.lang.Thread.run(Thread.java:834)2023-08-29 16:12:56.227 WARN 12860 --- [ XNIO-1 task-1] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [java.lang.UnsupportedOperationException]排查解决 日志核心打印Not Implemented、 java.lang.UnsupportedOperationException: null、at java.base/java.util.Collections$UnmodifiableList.sort(Collections.java:1332) 一开始看着报错null以为是空指针异常想着是不是没查询到数据或者排序字段的值有null值 查看了数据库数据发现没问题只好本地debug排查 加了断点进行debug确认返回结果list有值且排序字段也都有值继续执行还是这个报错 想着要进行更细粒度的debug于是按着 F5 继续调试结果发现也是直接一步走进报错在这一行Collections.sort 一下子没法排查了这个报错之前也没注意过于是继续去网上搜索相应报错还真找到了 还是要回到报错日志核心是这一句at java.base/java.util.Collections$UnmodifiableList.sort(Collections.java:1332) 在执行Collections.sort()方法时发现传入的集合list是一个不可修改的UnmodifiableList.不能直接拿来排序 但是可以通过新建一个list来解决这个问题 ListSituationAnalysisRegion situationAnalysisRegions analysisRegionRepository.findAll(specification, pageable).getContent();// 重新赋值排除 UnmodifiableList 报错ListSituationAnalysisRegion result new ArrayList(situationAnalysisRegions);// 排序要求if (null targetIndex || StringUtils.isEmpty(targetIndex)) {result.sort((o1, o2) - (int)(o2.getCongestionMileage() - o1.getCongestionMileage()));} else if (targetIndex.equals(trafficFlow)) {result.sort((o1, o2) - o2.getTrafficFlow() - o1.getTrafficFlow());} else if (targetIndex.equals(congestionIndex)) {result.sort((o1, o2) - (int)(o2.getCongestionIndex() - o1.getCongestionIndex()));} else {result.sort((o1, o2) - (int)(o2.getCongestionMileage() - o1.getCongestionMileage()));}return result;现在问题很明确了JPA的查询代码返回的list是个不可修改的list。在网上查询该问题时发现其他的一些类似查询也可能返回一个不可修改的list如 MongoDB的Java查询语句以后如果看到Collections$UnmodifiableList.sort报错就要考虑到这种情况都可以类似处理 UnmodifiableList类介绍 UnmodifiableList类是Collections的内部类Java的Collections框架提供了UnmodifiableList类作为不可变列表的一种实现UnmodifiableList实现了List接口但是在其基础上增加了一些限制例如不允许修改列表中的元素、不允许添加新元素以及不允许删除已有元素。因此可以使用UnmodifiableList来保护某些关键数据防止其他程序修改它们使用方式非常简单通过Collections.unmodifiableList(List list)方法可以将一个可变的列表转换为一个不可变的列表例如 ListString mutableList new ArrayList(); mutableList.add(apple); mutableList.add(banana); mutableList.add(orange);ListString immutableList Collections.unmodifiableList(mutableList);这样immutableList就成为了一个不可变的列表任何尝试修改、添加或删除其中的元素的操作都会抛出UnsupportedOperationException异常。
http://www.hkea.cn/news/14428771/

相关文章:

  • 做网站侵权平台企业采用劳务派遣方式用工的
  • 做网站可以用中文域名备案嘛住房和城建设网站首页
  • 网站开发需求调研建站 赚钱
  • 桂平市住房和城乡建设局网站贷款平台哪个好下款
  • 企业模板网站vue旅游网站设计及开发
  • 网站推广采用的方法建设网站怎么加购物车
  • 湛江做网站的有哪些做单页网站要多少钱
  • 个人电子商务网站建设方案网站建设视频代码
  • 具有品牌的常州做网站韩国在中国做美食的视频网站有哪些
  • 自己做网站需要什么技能温州seo招聘
  • 广州网站建设平台微网站和网站同步像素
  • 网站制作流程一般制作流程?企业网站必须备案
  • 西安 网站建设 费用前端性能优化有哪些方法
  • 天津哪家制作网站好软件工程师薪资待遇
  • 四川seo整站优化吧网站新闻发布系统模板
  • 俄语网站wordpress 插件破解
  • 南京网站开发价格海外营销推广
  • 浙江网站建设和制作品牌网站建设顾问
  • 做推广便宜的网站有哪些美食网站建设规划书
  • 如何把电脑改成服务器做网站商超运营与管理
  • 网站建设华为wordpress loop count
  • h5企业模板网站软件应用下载安装
  • 有口碑的南昌网站制作安徽动漫公司 网站制作 安徽网新
  • 如何创网站茶叶网站flash模板免费下载
  • 页面设计排版网站公司建网站的步骤
  • 企业网站报价模板下载网站建设专家公司排行
  • 公司网站的详细步骤微商怎么加好友增加大量客源
  • 山东省和住房建设厅网站destoon 网站后台
  • 网站建设相关的书籍宣传片制作方案策划
  • 做物流网站多少钱关键词热度分析工具