- 博客(29)
- 资源 (33)
- 收藏
- 关注
原创 升级log4j到log4j2报错:cannot access org.apache.http.annotation.NotThreadSafe
问题与分析今天把项目的log4j的依赖改成了log4j2的依赖后,发现使用Maven打包时报错如下:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project cbx-core: Compilation failure...
2018-12-28 01:18:41 3150
原创 log日志中不打印异常栈的具体信息
问题与分析最近在查项目的log时发现报了大量的NPE(NullPointerException),诡异的是只log了Exception的类名,却没有具体的堆栈信息,以致于无法对该NPE异常进行准确定位。这是因为jvm自身存在着优化机制,但一个同样的异常重复出现并被打印到log后,jvm可以不提供具体的堆栈信息来提高性能。关于这个的具体信息我们可以从官网上查到相关的资料:http://www....
2018-12-27 01:29:13 9513 1
原创 log4j和log4j2怎么动态加载配置文件
应用场景与问题当项目在运行时,我们如果需要修改log4j 1.X或者log4j2的配置文件,一般来说我们是不能直接将项目停止运行再来修改文件重新部署的。于是就有这样一个问题:如何在不停止当前项目的运行的情况下,让系统能够自动地监控配置文件的修改状况,从而实现动态加载配置文件的功能?而log4j 1.X和log4j2的差别略大,各自应该怎么实现这个功能?log4j 1.X怎么动态加载配置文件l...
2018-12-26 01:37:00 10113
原创 log4j2中LevelRangeFilter的注意点
LevelRangeFilter的注意点在log4j2中,LevelRangeFilter的minLevel,maxLevel的配置是和log4j 1.x相反的;minLevel需要配置的是高级别,maxLevel配置的是低级别,如下:<LevelRangeFilter minLevel="fatal" maxLevel="info" onMatch="ACCEPT" onMismatc...
2018-12-22 23:10:49 4316
原创 不占用任何额外空间的情况下交换两个数的值
题目假如有x、y两个数,如何在不占用任何额外空间的情况下交换两个数的值?思路平时我们在交换两个数的值时,往往会用一个中间数temp来实现效果,现在需要不占用任何额外空间,自然就不能使用这种寻常的方法了;这里可以有两种方法来实现。方法一int x = 5;int y = 10;x = x + y;y = x - y;x = x - y;先将两个数之和附给x,接着x-y自然就是原...
2018-12-22 23:04:27 3392
原创 log4j.xml中Filter的用法
前言log4j中常用的Filter分为四种:DenyAllFilter、LevelMatchFilter、LevelRangeFilter、StringMatchFilter。当appender匹配了某个Filter的时候,就不会继续匹配下一个filter,所以当需要配置多个filter时需要注意先后顺序,这样才能实现需要的效果。这些filter有个共同的属性AcceptOnMatch,用来...
2018-12-20 22:30:49 5480 1
原创 页面的背景音乐加载很慢
问题由于我在页面中使用了&lt;audio&gt;标签来播放一首背景音乐,该音频是一首大小为2.7MB的MP3文件。在第一次加载该页面时,需要花费相当长的一段时间去加载音频。解决方法百度了下才知道,原来超过2MB的背景音乐其实是一个很巨大的文件了,如果网速稍微慢一些用户体验就会很差了。大概有几种解决的办法:把音乐加到FLASH里使用rm或wma格式的背景音乐降低MP3文件的音质第...
2018-12-19 22:36:51 4375 5
原创 PostgreSQL - 怎么将时间转换成秒
保留原来的毫秒值select extract(epoch from '03:21:06.678'::time);这个extract(epoch from )函数得到的是时间是秒单位,如果需要毫秒值就直接乘以1000:select extract(epoch from now())*1000;去掉原来的毫秒值向下取整函数floor()select floor(extract(epoc...
2018-12-19 22:32:38 17604 1
原创 PostgreSQL - 怎么转换数据类型
前言对于select 233;这个sql,得到的结果是int4类型,如果我们希望将结果转换成其他的数据类型,有两种方法:方法一:使用::数据类型select 233::text;上边的sql通过::text将结果转换成了text类型。方法二:使用数据类型''select text '233';select text'233';上边的sql通过text''将结果转换成了text类...
2018-12-18 23:55:29 7769
原创 PostgreSQL - 用psql 运行SQL文件
对于预先写好的SQL文件,比如/home/user1/updateMyData.sql, 可以有两种方式来运行这个SQL文件。方式一:连接db后执行SQL文件首先通过psql连接到对应的db:psql -d db1 -U userA接着输入密码,进入数据库后,输入:\i /pathA/xxx.sql这里有个问题,如果你把SQL文件的路径里的路径分隔符写成了\,会报错说Permiss...
2018-12-18 23:52:55 38372 1
原创 JIRA中的标记语言的语法参考
前言看到网上有的文章说JIRA是使用Textile这门标记语言,有些语法和Wikitext和Markdown相像。JIRA在2017年进行了一次大更新,某些语法可能和以前不大一样,这里纪录一下常用的一些语法。标题h1.一级标题h2.二级标题h3.三级标题h4.四级标题h5.五级标题用法示例:h1.ddd一共有h1到h5这五种大小的标题,但是h6也是有效果的,不过h6起到的作用...
2018-12-18 00:49:39 6083 7
原创 Markdown - 如何给文本加下划线
解决方法Markdown可以和HTML的语法兼容,可以通过HTML的标签来实现效果:标签写法效果下划线&lt;u&gt;下划线&lt;/u&gt;下划线这里解释下,u指的是underline下划线。附注尽量不要给文本加下划线,因为这会和超链的表现形式混淆,会被误以为是个超链。参考链接HTML 标签...
2018-12-14 23:34:58 30854
转载 Linux - 查看并修改当前的系统时间
转载自Linux系统查看当前时间的命令查看和修改Linux的时区查看当前时区命令 : date -R修改设置Linux服务器时区方法 A命令 : tzselect方法 B 仅限于RedHat Linux 和 CentOS命令 : timeconfig方法 C 适用于Debian命令 : dpkg-reconfigure tzdata复制相应的时区文件,替换系统时区文件;或者创...
2018-12-13 23:05:36 3376 1
原创 Markdown - 如何使用上标、下标
解决方法Markdown可以和HTML的语法兼容,可以通过HTML的上标和下标标签来实现效果:标签写法效果上标2<sup>10</sup>210下标H<sub>2</sub>OH2O这里解释下,sup指的是superscript上标,sub指的是subscript下标。参考链接在markdown中如...
2018-12-12 22:11:38 10825 4
原创 如何使用Tomcat自带的日志实现tomcat-juli.jar
前言Tomcat自带的日志实现是tomcat-juli.jar,它是对默认的JDK日志java.util.logging进行一定的封装,和标准JDK日志支持相同的配置,但是和log4j等常用的日志框架比起来功能要较为简陋。但是tomcat-juli可以针对不同的classloader来使用不同的配置文件,使得tomcat下不同的Web应用程序可以使用各自独立的日志文件。如果我们想在代码中使用T...
2018-12-12 22:09:36 10917 1
原创 Tomcat - 怎么控制某个类或者包下的日志打印级别
问题与分析Tomcat是使用自己的日志实现tomcat-juli.jar来打印日志信息的,日志会被打印到catalina.out里,除去你在项目里自己使用的日志框架外,由System.out,System.err或者printStackTrace()打印出来的信息则是会被输入到catalina.out里,如果引用的jar包里也有这些语句也会一起输入到catalina.out里。比如现在cata...
2018-12-12 21:55:34 1615
原创 iReport - 无法正常启动的解决方法
问题与分析最近需要用到iReport报表工具,但是在启动客户端时却发现只出现了启动界面,很快就界面消失没反应了。反复打开了好几次客户端,都无法正常打开。问了下同事,说是因为jdk升级的原因,以前项目使用的是jdk1.7就可以正常使用,后来升级到1.8就无法打开iReport客户端了。百度了下,确实如此。目前官网最新的版本是5.6.0,据说有外国大神说是下个版本将会支持jdk 1.8。不过现在我...
2018-12-11 23:50:06 3915 2
原创 MyBatis逆向工程中domainObjectRenamingRule报错或无效
使用domainObjectRenamingRule报错在使用MyBatis逆向工程时报错如下:org.mybatis.generator.exception.XMLParserException: XML Parser Error on line 43: 必须声明元素类型 "domainObjectRenamingRule"。 at org.mybatis.generator.con...
2018-12-11 23:43:51 3002 9
原创 Maven聚合工程怎么变回普通的Maven工程
问题Maven聚合工程的父工程的packaging是pom,如果我们将其改为jar,会立刻报错:Project build error: 'packaging' with value 'jar' is invalid. Aggregator projects require 'pom' as packaging.对于聚合工程来说,所有的子工程会被放置到父工程的目录下,然后在父工程的pom文...
2018-12-11 00:26:23 1309
原创 Java反编译工具JD-GUI以及Eclipse的反编译插件
什么是反编译高级语言源程序经过编译变成可执行文件,反编译就是逆过程。但是通常不能把可执行文件变成高级语言源代码,只能转换成汇编程序。反编译是一个复杂的过程,所以越是高级语言,就越难于反编译,但目前还是有许许多多的反编译软件:通过对他人软件的目标程序(可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,作为自己开发软件时的...
2018-12-10 00:26:19 4372 6
原创 PostgreSQL - update语句怎么关联多个表
问题对于select语句,我们可以通过join/outer join来关联多个表;但是对于update语句,是不能直接通过join/outer join来关联多表数据的,这里仅针对PostgreSQL。或者说,在PostgreSQL中,就算使用update+join不会报错,但join的那部分其实是没任何效果的,如下所示:update aset value = 'test'from a...
2018-12-10 00:21:44 23768 14
原创 MySQL - 执行sql报错USING BTREE
问题与分析在执行sql文件时发现报错如下:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘USING BTREE....该错误导致有一个表创建失败,一时间很诧异。因为我所...
2018-12-07 00:15:42 3372 2
原创 怎么快速对DB里的所有email进行校验
问题由于业务上的需求,重新改写了校验email的正则表达式,同时DB里又迁移了其他数据库的数据,现在需要重新对DB里的所有email再校验一次,以排除掉不合法的email。DB里的数据很多,手动去一个个校验的做法显然是不靠谱的,这种机械的重复性操作,自然是要用程序来解决才是最简易的。做法拼接字符串首先是将DB里所有的email都拼接成一个字符串,由于用的是PostgreSQL,所以直接使...
2018-12-07 00:07:47 1146
原创 PostgreSQL - pgAdmin4远程连接数据库
前言PostgreSQL在安装的时候自带的pgAdmin这个可视化工具,自从将PostgreSQL9升级到了10版本后,自带的pgAdmin也从3升级到了4版本。pgAdmin4的变化非常巨大,刚接触时一脸懵逼,这里记录下怎么用pgAdmin4进行远程连接数据库并执行SQL语句。操作步骤选中Browser窗口里的Servers -> 点击上方工具栏里的Object -> Cre...
2018-12-06 23:57:04 10113 3
原创 解读ping -n 4 127.1 >nul 2>nul
命令解读ping是Windows、Unix和Linux系统下的一个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。应用格式是ping空格ip地址,可以附带参数,可以直接在cmd中输入ping然后回车来得到具体的帮助信息。127.1是127.0.0.1,通常被称为本地回环地址(Loop back add...
2018-12-06 00:41:16 11188 2
原创 cmd,bat和dos的区别
区别dos是磁盘操作系统(Disk Operating System),是个人计算机上的一类操作系统。bat是DOS命令,在任何dos环境下都可以使用。bat文件是dos下的批处理文件,批处理文件是无格式的文本文件,它包含一条或多条命令,后缀为.cmd或.bat,在Windows NT系统中,两者没有任何区别。cmd是cmd.exe,是Win32命令,只能在32位系统中的命令行窗口中使用,...
2018-12-06 00:35:51 5544
原创 vi/vim打开文件提示Found a swap file by the name
问题分析有一次在远程连接主机时,用vi打开文件my.ini却提示:Found a swap file by the name ".my.ini.swp"。百度了下才知道,原来在使用vi或vim命令打开一个文件后,就会产生一个.(filename).swp的文件。如果编辑完成之后,正常退出,那么这个swp文件就会被自动删除。而之前我在使用vi操作该文件时发生了异常中断(非正常退出),于是就在当前...
2018-12-04 22:58:18 5393 1
原创 如何获取更多关于序列化异常的堆栈信息
问题与解决方法有时候我们的系统会报java.io.NotSerializableException,根据堆栈信息又无法得出有用的信息,无法找到具体是因为哪些类或者变量造成的,可以使用一个java参数-Dsun.io.serialization.extendedDebugInfo=true来得到更加具体的序列化信息。从jdk6开始就可以使用该参数,可以在启动java程序时启用该参数,也可以在项目...
2018-12-03 23:46:44 986
原创 为GitHub项目添加协议
解决方法如果一开始在GitHub上创建仓库时没有添加协议,可以用以下方式来重新添加相关的协议:打开GitHub上的某个仓库,点击Create new file;在新建文件的页面上,输入文件名LICENSE,这时候你会发现在标题的右边多出来一个按钮Choose a license template,点击该按钮;在新页面上选择一个你想要的协议,接着在最右边输入Year和Full name,你...
2018-12-02 23:53:04 2820 1
awesomium_v1.6.6_sdk_win.zip
2019-08-06
dubbox框架demo项目
2018-10-08
PMD的规则文件
2018-04-04
eclipse代码格式文件
2018-03-08
ZK框架开发手册
2017-12-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人