linux中 nginx+tomcat 部署方式 tomcat挂掉设置自动启动 linux设置tomcat挂掉后自动启动,解决执行脚本报syntax error: unexpected end of file或syntax error near unexpected token `fi'错误的问题
调用第三方接口过长导致数据库连接超时( Communications link failure during rollback(). Transaction resolution unknown.) 业务逻辑是:推送按钮-处理推送逻辑-往第三方系统推送文件(大文件几十分钟)-推送完成-记录推送状态-操作完成。最后把推送方法脱离事务范围之外就可以了,至此长时间推送后业务持久化操作正常了。脱离事务的方式有很多中,要看什么框架以及框架版本和配置的优先级等等。原因是事务导致的,所以这个推送方法还得脱离事务。-- 只对业务逻辑层实施事务 -->2、把包名命名在配置事务处理范围外。
hutool HttpRequest.post 请求包含大文件报错Java heap space setChunkedStreamingMode(0) 就是表示使用PosterOutputStream输出流,会把文件全部缓存到内存后发送,需要设置对应分块大小,例如setChunkedStreamingMode(4096)才会使用StreamingOutputStream输出流。具体异常如下,可以定位到是execute执行请求时抛出的,有一点需要注意,try catch (Throwable e)才能打印出改异常,用Exception还打印不出来。hutool版本: hutool-all-5.7.20。
IndexOutOfBoundsException: Index: 2048, Size: 2048] Controller接收对象集合长度超过2048错误 Spring接受前台的数据超过2048出现如下异常:前台的Form 元素绑定到 后台的JaveBean对象,做的一个映射,但是这个映射的List长度不可以超过2048。溯源了下Spring的代码,找到了DataBinder,先解释下DataBinder类的作用,见链接。可以在controller 规定 长度即可;
使用pt-query-digest分析慢查询日志 pt-query-digest 属于 Percona Toolkit 工具集中较为常用的工具,用于分析 slow log,可以分析 MySQL 数据库的 binary log 、 general log 日志,同时也可以使用 show processlist 或从 tcpdump 抓取的 MySQL 协议数据来进行分析。
mybatis升级后导致alias表名设置设备诊断 mybatis从1.3.2 升级 2.0.7到后部分系统解析 alias出错了,具体错误如下:下面从TypeAliasRegistry.registerAlias 开始逐步分析两个版本差异和抛出问题原因。
NFS原理详解 它的主要功能是通过网络让不同的机器系统之间可以彼此共享文件和目录。NFS服务器可以允许NFS客户端将远端NFS服务器端的共享目录挂载到本地的NFS客户端中。在本地的NFS客户端的机器看来,NFS服务器端共享的目录就好像自己的磁盘分区和目录一样。一般客户端挂载到本地目录的名字可以随便,但为方便管理,我们要和服务器端一样比较好。NFS一般用来存储共享视频,图片等静态数据。《什么是NFS》就是通过网络共享目录,让网络上的其他服务器能够挂载访问共享目录内的数据。(一般共享视频,图片等静态数据)
Date/Timestamp类型前端传空请求400 Timestamp类型字段前端传参空的 就请求400。这边采用第三种解决的,在提交前去掉就行。3、前端请求前判断如果是空的就去掉。1、直接页面干掉这几个字段不传。2、后端修改类型为String。
mysql间隙锁,next-key lock,row锁加锁范围分析 mysql可重复读隔离级别的实现主要依赖mvcc(多版本并发控制)和间隙锁,行锁,多种锁的组合使用来解决可重复读和幻读的问题。mvcc:主要是给保存每行数据的多个版本,每个版本多了2个字段,一个为最后更新事务的id,一个是删除事务的id。在可重复读隔离级别下,每个事务都只能查询出小于等于自己事务id的版本记录。但这只针对于普通的,不加锁的select语句。对于update,delete语句如果想避免幻读,则需要间歇锁。
JAVA 可执行文件格式 按文件结构约定依赖jar包必须放在 WEB-INF/lib 下,任何运行时必须但部署到传统web容器时不必须的依赖放到 WEB-INF/lib-provided 目录下,而应用程序的 classes 必须放在 BOOT-INF/classes 目录下。springboot 加载 嵌套jars 核心入口 org.springframework.boot.loader.jar.JarFile。springboot 程序使用 Maven PLugin插件编译时,可以生成可执行的 jar 和 war 程序。
java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment 使用Xshell远程连接启动tomcat导致图片不显示,报错Could not initialize class sun.awt.X11GraphicsEnvironment。取消勾选转发X11连接即可,如果还不行,重启下xshell或者换个终端工具重启tomcat。
shiro权限设置 在spring配置文件spring-config-mvc.xml中配置开启shiro注解支持。注解要求当前的Subject被允许一个或多个权限,以便执行注解的方法。logical=Logical.OR 表示设置多个权限;1、在jsp页面中引入shiro标签库。技术:使用shiro标签进行权限控制。配置事务注解,强制使用cglib代理。技术:使用shiro注解权限控制。备注:项目已声明,无需再次配置。在controller配置注解。2、在页面中使用标签。
mvn 编译时报错 java heap space 使用IDEA进行war打包时,编译类都正常,但是最后生成 war 包时很慢,有些时候还会报错: java head space。idea 工具的内存大小是控制idea 开发工具的。而mvn是外部进程,不同进程有不同jvm参数配置。
IDEA:Command line is too long Idea启动项目报错:Command line is too long. Shorten command line for className or also for JUnit defaultconfiguration.在该项目文件夹.idea/workspace.xml中找到。