JAVA - 文章列表
共 3 页
-
Java报错Connection is not available, request timed out after 30000ms的排查方法(HikariCP连接池耗尽、连接泄漏定位与maximumPoolSize调整)
HikariCP报Connection is not available, request timed out after 30000ms,多数是连接池被打满。本篇讲清报错括号里total、active、idle、waiting四个数字的读法,用leakDetectionThreshold抓出泄漏堆栈,梳理queryForStream、事务里调外部接口等四种不还连接的写法,以及maximumPoolSize、maxLifetime、keepaliveTime的取值牵制。
-
Java报错RejectedExecutionException与线程池任务堆积的排查方法(ThreadPoolExecutor参数、四种拒绝策略与Spring Boot默认线程池配置)
线上抛RejectedExecutionException时,报错串里的pool size、queued tasks已经把现场说清楚了。记录execute()的四级流转、四种拒绝策略的取舍、Spring Boot默认线程池无界队列带来的隐性问题,以及用jstack与打点定位堆积任务的做法。
-
Java报错java.lang.OutOfMemoryError: Java heap space的排查方法(jmap与jcmd导出堆快照、MAT定位泄漏点与-Xmx调整)
Java heap space只说明堆分配不下了,谁占着堆要看堆快照。用-XX:+HeapDumpOnOutOfMemoryError留现场,jcmd与jstat判断是泄漏还是-Xmx给小了,再用MAT的Dominator Tree追引用链,顺带说清容器里UseContainerSupport与OOMKilled的关系。
-
Maven依赖冲突报错NoSuchMethodError与ClassNotFoundException的排查方法(dependency:tree定位与exclusions排除)
本地IDE运行正常、打成jar上线就报NoSuchMethodError或ClassNotFoundException,根因是classpath上同一个类存在两份版本。文章给出getProtectionDomain定位jar来源、dependency:tree与-X查omitted for conflict with仲裁结果、exclusions与dependencyManagement两种解法、enforcer插件构建期拦截,以及fat jar与scope写错的排查。
-
Java进程CPU占用过高的排查方法(top -H与jstack定位到具体代码行)
Java进程CPU打满时先分清us高还是sy高,再用top -Hp找出高CPU线程,把线程id转十六进制后到jstack输出里搜nid定位到具体代码行。文中包含连续三次抓栈对比、容器内jstack失效的两种原因、GC线程占高的判断方法,以及正则回溯、JSON序列化等常见代码原因。
-
java -jar 读取中文配置报错,使用utf8执行jar
java程序打包出来后,用java-jar运行,默认是gbk编码,可能会造成某些错误。如使用springboot开发的网站打包后,读取nacos的配置中如果有中文就会报错解决方式是加入-Dfile.encoding=utf-8这个参数,如下:java-Dfile.encoding=utf-8-jarxxx.jar
-
tomcat在win10中启动时,显示为乱码的解决方法
tomcat在win10中启动时,显示为乱码,如下图解决方法是修改conf目录下的logging.properties文件将UTF-8修改为GBK
-
springboot整合mybatis报错 Invalid bound statement (not found)
springboot整合mybatis时报错org.apache.ibatis.binding.BindingException:Invalidboundstatement(notfound):com.xxxx.xxxmybatis的mappper.xml文件是和java文件一起放的,经检查,发现target中没有将mapper的xml文件包含进去处理方法:在pom的build节点下加入src/m
-
eclipse springboot 自动部署(修改页面后不用重启)的设置
在pom中添加内容dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdoptionaltrue/optional/dependencybuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdsp
-
spring boot建立项目的基本方法
1、首先,安装环境eclipse中,Help-EclipseMarketplace,安装SpringTools2、安装好后,新建工程,选择SpringStarterProject3、填写项目信息Packaging选择war4、选择依赖的starter,(此示例中选择Aspects、Actuator、Web)5、修改application.properties。此处修改了端口,和查找视图的规则6、在