- 博客(115)
- 资源 (16)
- 收藏
- 关注
原创 clickhouse使用问题记录
重启完以后,你按照书上的sql去查询system.part_log表,但是却报错了,提示system.part_log doesn't exist,说这个表不存在。在《ClickHouse原理解析与应用实战》一书244页,也就是副本与分片这一章,作者在介绍分布式表引擎写入的核心流程时,对含有副本的分布式表介绍了2种方式:(1)通过Distributed表引擎自身完成副本的写入 (2)通过ReplicatedMergeTree复制数据。这么配置以后,重启集群,然后就可以了。...
2022-08-08 01:27:37
752
原创 maven多环境打包实现web.xml和context.xml中的占位符变量替换
在springboot或传统springmvc的tomcat项目中,为了实现spring容器文件中的变量替换,我们通常可以在项目的resource目录下新建几个环境目录,例如rd、test、dev、stress、online等等,然后再在对应的环境目录下放一些数据库的配置文件(例如jdbc.properties)、redis的配置文件(例如redis.properties)等等,当然你也可以直接使用一个config.properties(里面包含了数据库和redis以及其他的变量定义)。这样做...
2020-08-04 14:01:20
2273
1
原创 使用Java mail 发送日历邮件出现的乱码问题解决
想要使用Java通过程序来实现发送日历邮件的功能有两种途径:一是调用ews(即Exchange WebService API)接口协议;二是通过第三方开源组件iCal4j来实现。其中通过iCal4j又可以分为两种形式:(1)通过自定义iCal4j中的各个组件使用iCalendar数据流生成*.ics文件,完事之后还要删除ics文件,比较麻烦,但是自定义性和灵活性强,功能丰富。(2)通过日历邮件协议定义的标准的文本格式来发送,形如: String calendarCon...
2020-05-25 00:49:55
1287
原创 javax.naming.NameNotFoundException: Name LoginAuthenticationServlet is not bound in this Context
错误堆栈如下所示:javax.naming.NameNotFoundException: Name LoginAuthenticationServlet is not bound in this Context at org.apache.naming.NamingContext.lookup(NamingContext.java:770) at org.apache.naming.NamingContext.lookup(NamingContext.java...
2020-05-19 00:50:41
586
原创 TypeError [ERR_INVALID_CALLBACK]: Callback must be a function错误解决
在《oAuth2实战》一书中,作者岁数代码使用了node.js语言来描述。在oAuth中有4种角色:资源拥有者、客户端、授权服务器和受保护资源,资源拥有者就是人,所以每个场景联系都是三个组件,换成node.js即三个js文件,在三个窗口依次启动client.js、authorizationServer.js、protectedResource.js,当启动完以后,首先点击getOAuthToken,拿到令牌以后,点击getProtectedResource报错了,受保护资源端错误如下所示:...
2020-05-18 23:14:46
4525
2
原创 Is the byte array a result of corresponding serialization for DefaultDeserializer?;EOFException
异常堆栈信息:org.springframework.data.redis.serializer.SerializationException: Cannot deserialize; nested exception is org.springframework.core.serializer.support.SerializationFailedException: Fail...
2020-05-08 17:06:39
9966
原创 无法访问org.apache.http.annotation.ThreadSafe 找不到org.apache.http.annotation.ThreadSafe的类文件
明天更新
2019-12-30 22:39:14
5807
原创 java通过JByteMod-1.8.2修改jar包中的源码并重新保存jar
刚接手了一个新项目,项目中的很多功能是通过引入第三方jar包来实现功能的,由于业务需要,要修改jar包中的源码才能实现所期望的功能,我先说一下我采用过的方法: 1.第一种是将jar包中需要修改的类文件反编译,修改后再编译成class文件重新打包。这种方式对我不可用,原因是我要修改的类文件大量引用了其他jar包中的类,这样一来为了修改一个类,你得把所有涉及到的其他类都得拿过...
2019-11-30 23:44:44
5271
原创 hibernate的validate注解与@RequestParam注解搭配使用实现参数不为空的条件下才校验
项目中一个接口有几个参数,其中有必填的也有可选的,要求使用hibernate的validate注解实现参数校验,必填参数好说,可选参数无法实现这两个校验:一是参数为空的条件下什么也不做;二是参数不为空的条件下,参数是否符合取值范围 如果只使用validate注解,只能实现第二条,即一个@NotBlank注解,上面再加一个@Pattern注解或其他注解限制取值范围。对于...
2019-10-15 11:11:21
5063
原创 jquery dataTable标题和列内容居中
标题居中需要在全局css文件中定义table的样式,假设在一个html的div中这样定义一个dataTable:<table class="table table-striped table-bordered table-hover" id="datatable"> <thead>...
2019-09-02 20:16:04
7667
原创 springboot2.0中@ResponseBody返回null值转空字符串的问题
最近正在做一个后台管理系统的项目,前端是基于Metronic的Bootstrap开发框架,管理后台大部分是将服务端查询的数据显示在表格中,由于某些字段可能为空,显示在表格中为null,不太优雅,所以想显示成空字符串或者“-”,服务端是spring boot2.0,过滤null值为空字符串一般是在序列化的时候设置值。 controller层使用@ResponseBody...
2019-08-29 22:57:23
3138
原创 hibernate的validate注解异常在不同版本下的全局捕获方式
在最开始的时候,web项目中接口的第一步几乎都是判断参数的合法性,例如值是否为null等等。因为有guava的工具包,刚开始手写校验参数还OK,例如: if (StringUtils.isBlank(name)) { return "name不能为空";} 随着项目功能接口变多,这种写法越来越麻烦;hibernate出了一种注解,可以很方便...
2019-07-31 23:11:08
1307
原创 JAVA 利用反射执行带有泛型参数的方法
虽然本文旨在说明如何利用反射执行带有泛型参数的方法,但是还是先来看下这个议题的背景吧,我们的服务要接入公司里面另一个平台的一个服务,我们的服务是Java语言开发,他们的服务是PHP开发,虽然远程过程调用无关乎语言,但是在传参方面遇到了一些小问题;除此之外,还记得远程过程调用需要客户端的存根和服务器端的骨架嘛,当然这都是后话了。 1.先来看下他们的接口地址:http://...
2019-04-30 23:13:07
5043
原创 velocity模板路径在不同项目中的获取问题
以前就遇到过在linux上和在windows上获取文件路径的方式不一样;因为我平常在windows上开发项目,最后部署到docker容器中就会报无法找到模板路径;我在windows本地是以springboot项目启动,部署到docker中是以jar包方式启动,可见这两种方式会影响模板路径的获取。 这次的问题跟以前稍微不一样,都是部署在docker中,以前是war包运行,现在...
2019-03-16 16:03:30
3148
原创 sequelize常见API使用
1.对查询出来的属性起别名// 第一种:根据id查询一条记录 const favors = await UserModel.findOne({ attributes: [['user_favorites', 'userFavors']], //将user_favorites属性重命名为userFavors where: { id: `${id}`...
2019-02-11 19:40:12
10155
2
原创 element-ui表格组件el-table实现行编辑与新增功能
element前端ui组件挺美观的,我们也使用了他们的table组件,但是默认没有提供行编辑功能,我们可以通过将table的每个单元格换成input框来巧妙实现。默认每个单元格就是一个template数据填充,不可编辑;我们可以在template里面包裹一个input框来实现单元格可编辑;等每一个单元格都可编辑的时候,我们可以在每一行后面加一个按钮来控制只可编辑当前行。 ...
2019-01-31 22:59:26
23830
10
原创 使用sequelize实现关联查询
关联查询包含一对多和多对一的映射关系,一对多的API为belongsTo,多对一的API为hasMany。使用sequelize进行关联查询时,要根据具体情况选择用哪一个映射关系,因为这其中涉及左右连接、内外连接的性能问题。下面来看一个一对多的例子,当然你可以将这个例子反过来多对一,但是性能会差很多。所以我们要根据数据库表的设计来选择谁关联谁 假设有一个Student...
2019-01-31 22:56:30
24544
7
原创 orm框架sequelize的where条件接受动态参数传入
在nodejs项目中,接口会接收从前台传来的查询参数,接口里面根据请求参数动态查询数据库,例如分页参数等等;sequelize官方文档中并没有提及如何做,不过可以利用sequelize的特性去巧妙实现。下面介绍两种方式: 先来看第一种方式:由于sequelize的where查询条件本身就是一个对象object,所以我们可以利用这种特性,提前根据请求参数以及各种条件判断来构...
2018-12-11 16:07:16
14645
4
原创 guava缓存编写单元测试遇到的问题
通常编写单元测试主要是针对service类,因为主要的业务逻辑都在service层;单元测试往往要求达到一定的覆盖率,主要包括方法覆盖率和分支覆盖率。分支覆盖率只要是指业务逻辑中的各种情况(例如if...else...等等),各种条件下如果都能执行到,那么你的测试覆盖率一定会非常高。 现在来看一个例子,我的业务逻辑中使用了多级缓存,首先从guava中读取,如果没有再从re...
2018-11-30 21:18:57
1259
原创 一次http请求删除cookie时遇到拦截器拦截到两次的问题
在一次http请求的业务逻辑中,如果程序代码有删除cookie的地方,那么必须等到response返回给浏览器或客户端后才会真正的删除,代码中cookie.setMaxAge(0)只是添加指令,只有客户端收到指令以后才会删除。 在此我分享一个案例,当时代码遇到的一种奇怪的现象,不过现在知道原因了,我的项目是一个web项目,里面有一个拦截器,主要是preHandle这个方法里面...
2018-11-30 21:17:39
1464
原创 Typescript与orm框架sequelize语法冲突的问题
如果不想在nodejs中大量的手写sql,就可以采用orm框架sequelize,它非常类似于Java的JPA,让你的代码看起来更规范简洁高效。不过在采用sequelize编写的过程中遇到了一些问题,而网上的资料又太少;不是没有去sequelize官网看过,主要是官网的API示例都是针对一般的js语法,而我的项目使用了TypeScript,有好多地方功能虽然可以正常执行,但是代码下面会...
2018-11-30 21:14:19
3729
原创 在idea中启动nodejs项目后访问报错:Error: template not found: index.html
以前一直用idea开发Java项目,最近团队要开发一个nodejs项目,有的人用的是VSCode,而我不想换开发工具了,幸好idea有nodejs插件,安装完以后导入项目即可,电脑上一定要提前安装好nodejs环境,安装好以后,idea的nodejs插件就会自动找到本地node安装路径,自动配置好。项目采用nodejs+typescript+express。 项目启动前...
2018-10-29 19:43:05
3954
原创 在idea中使用JaCoCo插件统计单元测试覆盖率
在后台工程师开发完新代码交给QA进行测试时,软件测试人员一般都会要求后台开发对单元测试的覆盖率达到一定的标准;例如我们的标准是分支覆盖率达到50%以上,函数覆盖率达到50%以上。 在idea中查看覆盖率挺简单的,idea中支持三种插件来查看覆盖率,每种插件统计明细各有千秋,分别是idea自带插件、JaCoCo、Emma。 在idea中打开一个测...
2018-09-25 11:36:34
49289
28
原创 SpringBoot项目中使用webservice调用远程服务
有一个webservice项目,对外提供资源查询服务,使用了Apache的cxf框架,soap协议。如今都使用微服务,在一个springboot项目中需要远程调用这个资源查询服务,RPC的一种,既然是RPC,就需要有客户端的存根(stub)和服务端的骨架(skeleton)来完成调用,将webservice项目打成jar作为依赖引入当前springboot项目。 ...
2018-08-31 20:16:27
33298
原创 使用HttpClient模拟访问带有嵌套对象参数的接口
项目中涉及到外部服务调用时,会使用到postman来模拟测试,例如一个接口如下:@RequestMapping("/test")public void test(@RequestBody User user){} User类的属性包括id、name、age三个属性,那么当你使用postman调用接口时,就可以使用这三个参数传进去,它会自动映射到User对象中,或者使用...
2018-07-31 10:37:33
3990
2
原创 使用selenium模拟浏览器操作页面及问题处理(采用Java语言)
有一个需求是:页面上有一批测试数据要删除,一共10万条数据,每页显示20条,一共5000页,手动删除的操作一般是先点击全选本页20条,点击"删除"按钮,再点击弹出"确认"按钮完成一次操作。人工点击太费时费力,本来写了一个js脚本,每隔10秒定时去操作,把脚本放在当前页面的浏览器控制台执行,不一会浏览器就卡死了。这时selenium就派上用场了 所需依赖:<dependency&...
2018-06-15 17:21:12
2551
3
原创 采用velocity模板引擎作为Java邮件模板
获取邮件模板public String getMailContent(String name, String tel) throws IOException { StringWriter stringWriter = new StringWriter(); // velocity引擎 VelocityEngine velocityEngine = new Velo...
2018-06-01 10:48:28
2658
原创 idea中导入sbt多模块项目遇到的问题解决方案
在《Akka入门与实践》一书第二章-----Actor与并发,作者使用了两个项目,一个是服务端,一个是客户端,而客户端要依赖服务端,所以客户端算是一个多模块项目,整个项目都是用sbt工具构建的。这有点类似于maven多模块项目,一个maven项目要依赖另一个maven项目,那首先要将被依赖的maven项目安装到本地仓库(例如mvn install);sbt项目也是如此,不过有几个问题需...
2018-05-11 17:20:09
3112
原创 关于在idea中导入sbt项目出现的问题
sbt即Simple Build Tool——简单构建工具,sbt是scala项目的首选构建工具,也是play框架和activator实际使用的构建工具。在《Akka入门与实践》一书中随书源码项目全部使用sbt构建,而我在导入sbt项目时出现了好多问题,特此记录: 1.安装sbt 我们要使用sbt,就必须首先在本地安装一份,官网下载zip包,解压到一个目录就行;其次要在idea中...
2018-05-07 12:37:30
16796
1
原创 Can not deserialize instance of java.util.ArrayList out of VALUE_STRING token at
我有如下一个接口,接口参数是一个实体类User,user实体包含email和List<tastes> 等属性@RequestMapping(value = "/users", method = RequestMethod.POST)public ResponseEntity<User> createUser(@RequestBody User user) {pu...
2018-04-28 13:18:26
26755
2
原创 关于idea导入gradle工程,出现sync failed的问题
在《精通Spring MVC4》这本书中,作者通篇采用gradle来作为项目构建工具,当我们下载下来随书源码后,想导入到idea中,发现idea控制台正在syncing,在第三步configure时一直出错;有时候依赖下载不下来,你到maven中央仓库查看发现有这个依赖,但是gradle就是下载不下来,这些情况的解决方法就是在导入已存在gradle项目时,先build一下: 点击i...
2018-04-28 12:37:14
38028
原创 Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-CSRF-TOKEN'
Spring Security 4.0之后,引入了CSRF,默认是开启。不得不说,CSRF和RESTful技术有冲突。CSRF默认支持的方法: GET|HEAD|TRACE|OPTIONS,不支持POST。 解决方法有两种: 第一种是在spring security的配置类中将csrf功能禁用,如下@Overrideprotected void configur...
2018-04-27 19:28:39
8970
原创 EL1007E:(pos 0): Property or field 'year' cannot be found on null
在《Neo4j全栈开发》一书第172页,页面采用的是thymeleaf模版引擎,页面中用到了thymeleaf标签语言strings的substring函数和length函数,使用中应该在strings前面加上#号,书中有一个加错了地方: 其中playoff.year前面的#号应该放在后面的strings.substring前面,但是书中放错了,程序就报错了。正确语法如下:<s...
2018-04-19 19:44:08
11171
原创 自定义jqgrid的一些小技巧(五)
1.jqgrid编辑行、保存行、取消编辑,jqgrid编辑一行数据是分两步的,先编辑,再保存,点保存的时候才会向后台发请求,想自定义这些过程,请参考这一篇https://blog.youkuaiyun.com/dreamstar613/article/details/54613032和这一篇https://blog.youkuaiyun.com/zacry/article/details/425082172.jqgrid...
2018-04-03 19:23:47
1766
原创 自定义jqgrid的一些小技巧(四)
1.在使用jqgrid自带的行编辑时,如何获得正在编辑的单元格的值呢? 方案一:通过单元格input框来获取他的值,关键是要找准input元素的id值的规律//行ID和列名字,决定了一个单元格的位置,从而可以取出单元格的值var strValue=$("#grid").jqGrid("getCell",rowId,"表格列的名字"); 如上所示是获取某一个单元格的内容,但是当你把值打印出来...
2018-04-03 18:38:02
1381
原创 自定义jqgrid的一些小技巧(三)
1.jqgrid在填充数据的时候,如果你的实体中有一个主键字段为id,那么jqgrid会自动将id映射为rowId行键,这样就很方便了,与数据库记录一一对应,请与序列号区别开。如果你的实体中的主键字段名不是id,而是userId或其他什么的名字,你要注意小心了,这时就映射不上了,jqgrid会将序列号作为rowId,此时与数据库记录号不对应了,所以操作时要小心了,那么如何让其他字段作为jqgrid...
2018-04-03 16:19:42
1116
原创 自定义jqgrid的一些小技巧(二)
1.jqgrid动态显示隐藏某一列。例如我们不想要那个方框列,用来勾选的多选框列,而想添加一个序号列,从1到n的自增列,那么就可以这样做:jQuery(user_selector).setGridParam().hideCol("cb").trigger("reloadGrid"); //隐藏jQuery("#grid_id").setGridParam().showCol("cb").trigg...
2018-04-03 15:46:13
1527
原创 自定义jqgrid的一些小技巧(一)
项目要改版,于是在网上找到了一款素材,表格为jqgrid,主题样式为ace风格;看起来简洁自然,不过第一次接触jqgrid,想弄明白还是花费了很大功夫。现在整理记录一下使用过程中根据需求自定义jqgrid的一些方法:原型形如:1.不想要每一行最左边的“铅笔”(编辑按钮)和“垃圾箱”(删除按钮)怎么办? 解决方法:就是将colNames和colModel里的第一项去掉,如下红框所示,除了...
2018-04-03 15:05:00
2060
原创 让jQuery中对话框dialog的title支持html代码块
有时候在使用dialog对话框的时候,想让对话框的标题好看一点,例如设置个字体大小、颜色呀、加个图标呀什么的。在网上搜都说jQuery的dialog支持title为html,于是我也试了一下:$( "#dialog-confirm" ).dialog({ resizable: false, modal: true, title: "<div class='wi...
2018-03-30 20:01:21
3754
原创 在eclipse中使用protobuf-dt插件进行序列化时遇到的问题
使用protobuf-dt插件比在命令行使用命令方便,但是这个插件的下载地址要翻墙,速度也不理想,所以我在资源里上传了一份,下载地址为:protobuf-dt ,这是一个zip包,安装方式以eclipse-4.4-luna-sr2为例,在eclipse菜单栏点击“Help"---->"Install New Software",弹出如下界面: 点击"Add"按钮,出现如...
2018-02-09 15:40:41
2214
Elasticsearch学习资料整理
2018-01-12
logstash-input-jdbc-4.2.3离线安装包
2017-10-11
kafka-manager-1.3.3.13.zip
2017-08-14
报表工具Highcharts
2017-07-17
批量生成access.log的demo
2017-07-17
inotify-java-2.1.jar
2017-07-10
java开发二维码所需QRCode.jar包,附带demo
2016-03-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人