环境 jdk 1.8、jdk11 idea版本为:2020.1、2020.1.1 spring boot 版本为:2.2.x,spring cloud版本为:Hoxton.RELEASE 问题 idea开发 SpringBoot启动报错 程序包org.springframework.boot不存在,而使用maven 命令直接执行时无任何问题,不会报错,仅在idea 中build时出现问题。100%可以保证,引入的pom文件是全的不会有问题,配置也不会有任何问题。 经过测试应该是某种条件下触发,spring boot 版本为2.2.x ,出现问题的idea版本为 2020.1、2020.1.1,但并不是百分百复现,出现问题的一般是升级到这两个版本的idea出现,一旦出现即使重装idea、删除本地maven缓存库、重新import包也都无法解决。 解决办法 经过多次测试、分析,基本可以确定这个问题是idea版本 2020.1、2020.1.1的BUG,将idea版本降级 ideaIU-2019.3.4.exe其他任何地方无需改动,即可解决。 这个BUG问题感觉非常严重,只要升级到这最新版,触发了这个BUG,就没有别的办法了,除非更换之前旧的idea版本方可解决。
Posts Tagged ‘java’
idea开发 SpringBoot启动报错 程序包org.springframework.boot不存在
Thursday, May 28th, 2020记一次Mysql 数据库诡异锁表解决过程
Tuesday, March 24th, 2020Mysql锁表现象 1、目前线下业务中心N个,每一个线下业务中心,拥有独立的内网服务器,用于线下业务,部分中心务偶尔性的出现业保存时卡住无法进行的情况一旦卡住则无法使用,时间不确定、周期不确定,部分中心周期短的时候1周一次,时间长的可能一两个月一次,而实际业务量基本保持稳定增长,没有大变化 。 2、同样的代码仅在部分中心出现该问题。 3、表引擎为innodb 4、 mysql版本为5.6.x 5、 服务器基本为windows server 2008R2、windows server 2012。 原因分析查找 1、show open tables where in_use >=1; 执行时发现某一张表 in_use达到100次之多,直接影响业务的正常进行。(https://dev.mysql.com/doc/refman/5.6/en/show-open-tables.html) 2.、查询当前锁定的事务为空、等待锁的事务也为空,没有锁的事务??但表N多in_use状态 3、每次锁的表不固定,随机锁表(难道是系统整体事务有问题?也不可能,有的中心长期运行无任务问题,同样的代码)。 解决过程 事情比较诡异,当然首先想到的是事务处理有问题,而经过确认研究,事务写法、配置均正确。 1、暂时没解决之前,只能先临时重启mysql处理,另行查找原因。 2、查找源代码,发现锁表的很多是非常简单的业务比如整个系统中只涉及到一个insert 语句而已,无复杂业务,确认源代码无问题。 mysql> show variables like ‘innodb_autoinc_lock_mode’;+————————–+——-+| Variable_name | Value |+————————–+——-+| innodb_autoinc_lock_mode | 1 |+————————–+——-+ 发现自增表锁模式为:连续模式,每次也是单记录写入。 查找mysql错误日志,发现没有死锁日志。 最终解决办法 怀疑跟操作系统有关,不同批次的服务器供应商安装的操作系统有异,将服务器重装为Linux之后,观察运行情况,重装之后至今(几个月了)但凡装过Linux系统的业务中心均再未出现该现象。 update 2020年4月30日 目前已经运行近4个月100%正常。 结论 但凡不是自己安装的系统,或者不确定是正版系统的情况下系统出现莫名其妙的问题, 初步排查程序没有问题时,可以优先考虑操作系统的问题。
Proguard 代码混淆后 WEB项目的运行
Thursday, April 7th, 2016在代码进行Proguard 混淆之后,需要通过tomcat或者其他web服务进行启动,启动时报错如下: Caused by: java.lang.VerifyError: Expecting a stackmap frame at branch target 63 Exception Details: Location: org/jiucool/listener/DatabaseUpdateListener.cD()V @12: ifeq Reason: Expected stackmap frame at this location. Bytecode: 0x0000000: 2ab4 0046 b600 4e4d 2cb8 00ae 9900 332c 0x0000010: b800 7f4c 120a 2bb6 0073 b600 9f9a 002a 0x0000020: b200 48bb 0030 59b7 00a2 120c b600 a32b 0x0000030: […]
JAVA WEB 项目的代码混淆
Friday, March 11th, 2016前言 曾几何时认为世界多么的美好,可事实上虽有美好,但糟粕也是很多的,近期我们的项目,终端系统要部署到客户那里,让人没想到的是作为国内某知名专家的项目团队几乎原样将我们的宣传材料、业务流程照搬过去,着实令人汗颜,所以对项目源码的保护必须提上日程。项目为web项目。 一、选择加密工具 经过筛选,最终选择了proguard加密工具。 ProGuard是一个压缩、优化和混淆Java字节码文件的免费的工具,它可以删除无用的类、字段、方法和属性。可以删除没用的注释,最大限度地优化字节码文件。它还可以使用简短的无意义的名称来重命名已经存在的类、字段、方法和属性。 二、注意事项 具体的加密方法,这里不多做说明,网上资料还是很多的,可以参考一下,推荐文章:Android proguard 详解: http://blog.csdn.net/banketree/article/details/41928175 ,其实安卓与web很多地方都是差不多的。下面主要说明一下注意事项。 spring 及springmvc配置,尽可能采用注解形式,如果采用XML方式,类名方法名等将无法混淆,混淆后工程是无法启动的,实在无法改为注解的部分需要保留。 自定义listener、servlet,改为注解形式,Servlet 3.0 以上版本都是支持注解的,相信现在大家用JDK5或以前的版本没有了吧。 关于全局静态变量,可能很多JSP页面会有引用,这个需要注意放到keep class里面。 关于jpa 实体类,需要keep 保留。 参考资料 proguard: http://baike.baidu.com/view/1834969.htm Android proguard 详解: http://blog.csdn.net/banketree/article/details/41928175
Solr 5.1 版本中文分词IK-analyzer的使用
Sunday, May 17th, 2015Solr 5.1 版本于2015.04 发布,进行了下体验,发现之前的4.X、3.X版本中,每次版本迭代,变化都不小,不说别的,基本的接口、参数都会发生变化,所以对于已有项目的Solr升级还是要慎重一些。 对于项目中的中文分词一直是用的IK-analyzer,而IK-analyzer最新版本为IK Analyzer 2012FF_hf1,该版本直接安装于solr 5.1是无法运行的,于是下载IK Analyzer 2012FF_hf1源码进行了部分修改重新打包。 重新安装试了下,完全OK没问题,需要的朋友可直接下载使用。地址为:IK-Analyzer-ForSolr5.1.zip
Eclipse 打开文件所在文件夹(目录)插件 支持Eclipse 4.4+
Wednesday, November 5th, 2014升级到Eclipse 4.4后,easy explorer已不能使用。 Eclipse打开文件所在目录插件open explorer, 直接放到你的eclipse程序目录下的plugins目录,重启eclipse即可。和easy explorer使用方法一样。 下载地址为: https://github.com/samsonw/OpenExplorer/downloads