工作记录
雨临Lewis
个人博客地址:https://lewky.cn
展开
-
JavaMail-发送一封简单邮件(附带附件)
最近使用到JavaMail,写了个简单的工具类,记录一下。import java.util.Date;import java.util.Properties;import javax.mail.MessagingException;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.原创 2017-11-22 23:31:05 · 1316 阅读 · 0 评论 -
JIRA中的标记语言的语法参考
前言看到网上有的文章说JIRA是使用Textile这门标记语言,有些语法和Wikitext和Markdown相像。JIRA在2017年进行了一次大更新,某些语法可能和以前不大一样,这里纪录一下常用的一些语法。标题h1.一级标题h2.二级标题h3.三级标题h4.四级标题h5.五级标题用法示例:h1.ddd一共有h1到h5这五种大小的标题,但是h6也是有效果的,不过h6起到的作用...原创 2018-12-18 00:49:39 · 5994 阅读 · 7 评论 -
升级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 · 3132 阅读 · 0 评论 -
log日志中不打印异常栈的具体信息
问题与分析最近在查项目的log时发现报了大量的NPE(NullPointerException),诡异的是只log了Exception的类名,却没有具体的堆栈信息,以致于无法对该NPE异常进行准确定位。这是因为jvm自身存在着优化机制,但一个同样的异常重复出现并被打印到log后,jvm可以不提供具体的堆栈信息来提高性能。关于这个的具体信息我们可以从官网上查到相关的资料:http://www....原创 2018-12-27 01:29:13 · 9491 阅读 · 1 评论 -
怎么快速对DB里的所有email进行校验
问题由于业务上的需求,重新改写了校验email的正则表达式,同时DB里又迁移了其他数据库的数据,现在需要重新对DB里的所有email再校验一次,以排除掉不合法的email。DB里的数据很多,手动去一个个校验的做法显然是不靠谱的,这种机械的重复性操作,自然是要用程序来解决才是最简易的。做法拼接字符串首先是将DB里所有的email都拼接成一个字符串,由于用的是PostgreSQL,所以直接使...原创 2018-12-07 00:07:47 · 1119 阅读 · 0 评论 -
嵌套循环的优化
需求背景今天拿到这样一个需求:有Map A和Map B,这两个Map都持有着一个同样的key——id,其对应的value可能相同,也可能不相同。现在需要对两个Map中该key对应的value相同的键值对做些特殊的操作。这是个很简单的需求,代码很简单,我直接一个循环里嵌套另一个循环去实现这个功能需求:for(Map.Entry<String, String> entry : map...原创 2018-10-13 23:06:27 · 7618 阅读 · 0 评论 -
服务器时间和数据库时间的校验
问题与分析今天在公司进行Sanity Test(可用性测试)时发现服务器启动失败,查找log后发现在启动时发生了异常导致了服务器启动失败。由于公司的服务器和数据库分别部署在不同的主机,所以会在启动时进行时间上的校验,如果两台主机的时间差超过600s就会抛出异常、启动失败。这个设定的时间差被存储在数据库中,以方便日后修改。 SELECT TO_CHAR(CURRENT_TIMESTAM...原创 2018-08-23 00:46:20 · 2772 阅读 · 0 评论 -
Eclipse笔记-配置篇(tab插入空格,文件编码,Save Actions,代码提示等)
最近Eclipse(Indigo version)又开始发疯,打开后发现Project视图里的项目全部报错找不到,但是磁盘里项目还在,只能重新导入,导入后发现之前配置的比如说文件编码、代码提示等都消失了,只好重新配置,这里顺便记录一下,方便以后恢复配置。给tab键插入4个空格通常我们都会使用tab来进行缩进,由于不同的编程语言对于tab缩进的解析不同,有的是两个空格,有的是四个空格,容...原创 2018-03-08 22:48:29 · 907 阅读 · 0 评论 -
验证邮件地址的Java正则表达式
最近写了个Java正则表达式来验证RFC 5322规范的邮件地址,这个邮件地址比较复杂,对于这样一个地址:userName@domainName,它满足以下条件:对于userName 1、允许使用以下所有字符作为用户名: [A-Z], [a-z], [0-9], [.], [-], [_], [@], [!], [#], [$], [%], [&amp;], [‘], [*]...原创 2018-04-03 10:14:59 · 5360 阅读 · 0 评论 -
Maven笔记-使用-DskipTests跳过单元测试
之前在把项目安装到本地仓库时,发生了Error,因为项目缺少了测试类导致install失败,这时候可以使用如下命令来跳过测试用例:mvn clean install -DskipTests原创 2017-11-25 00:22:40 · 1373 阅读 · 0 评论 -
特殊的空格-ASCII码值160
最近遇到个问题,在页面的搜索框输入带有空格的字符串时,总是无法从db中搜索出来对应的数据,于是将db里的空格复制出来,发现其ASCII码值为160,这才知道,原来ASCII码中除了32之外还有160这个特殊的空格。下边是查看字符对应ASCII值的逻辑:final char c1 = ' '; //db里的空格final char c2 = ' '; //手动输入的空格System.out.pri原创 2018-02-23 14:07:35 · 32663 阅读 · 7 评论 -
外贸笔记-AQL抽样标准
由于公司的项目是为国外服务的采购平台,如果不了解一定的外贸知识,还真不好维护、开发项目。最近在做一个和质检相关的功能,在这里记录一下相关的知识。AQL抽样标准对于有一定数量的一批货物,现在需要对其进行抽样检验,在检测报告(inspection report)中,涉及到了一些外贸术语:AQL,Critical,Major,Minor…AQL就是Acceptable Quality L...原创 2018-03-07 00:32:39 · 20968 阅读 · 0 评论 -
JIRA笔记-工作中关于JIRA的简单应用
公司使用JIRA来进行分发任务,每一个JIRA,就相当于一个任务。可以由团队的leader派遣(assign)一个JIRA给你,也可以自己去找JIRA来做。由于公司是外企,使用的产品都是英文的,所以刚开始接触JIRA时,难免手忙脚乱,现在算是熟悉了一些,在此记录一下关于JIRA的简单应用。下图是一个新的JIRA:当我们要开始做这个JIRA时,点击Start Progress,选择d原创 2017-12-15 21:26:41 · 10571 阅读 · 0 评论 -
使用POI和dom4j来解析Excel生成Xml
工作中有时候我们需要使用Apache的POI来读写Excel文件,而dom4j则用来解析或者生成Xml文件,由于涉及到IO流,所以又使用了commons-io提供的IOUtils来关闭流。需要的Jar包 POI和dom4j需要的jar包一个应用POI和dom4j的简单例子import java.io.File;import java.io.FileInputStream;import ja原创 2017-11-23 22:20:39 · 3142 阅读 · 0 评论 -
由Java正则表达式的灾难性回溯引发的高CPU异常:java.util.regex.Pattern$Loop.match
问题与分析某天领导report了一个问题:线上的CPU自从上一个版本迭代后就一直处于居高不下的状况,领导看着这段时间的曲线图判断是有两条线程在不停的死循环。接到任务后去查看了AWS的CloudWatch,发现线上CPU确实一直居高不下,使用率基本是之前的两倍;另外发现线程使用率以比之前频繁很多。后来公司的大佬拿到dump后经过分析发现,是由正则表达式造成的CPU持续高使用率的问题。堆栈信息如...原创 2019-10-11 00:37:53 · 2520 阅读 · 0 评论