java
Junfeng Tang
无论之前的人生发生过什么,都对今后的人生如何度过没有影响。
展开
-
ControllerAdvice统一异常处理失效
testException这个类是全局异常处理类,需要需要交给ioc容器管理,故需要确保能扫描到这个类!且观察类上午spring注解标识。在common模块增加统一异常处理代码,如下。在service业务处理类中抛出异常,这是因为这个类没有交给IOC容器管理!---- 根本就没有扫描到这个包。将此统一异常类注入到spring.factories即可。但是接口返回的为spring统一的500错误。原创 2022-12-08 15:18:45 · 554 阅读 · 0 评论 -
FastDFS文件上传
FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。原创 2022-11-30 14:03:49 · 669 阅读 · 0 评论 -
FastDFS
FastDFS是分布式文件系统。使用 FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。原创 2022-09-09 11:18:49 · 336 阅读 · 0 评论 -
FileUploadBase$SizeLimitExceededException
上传文件报错原创 2022-07-16 14:20:29 · 539 阅读 · 0 评论 -
win7下Elasticsearch、Kibana安装
Elasticsearch安装下载https://www.elastic.co/cn/downloads/past-releases#elasticsearch这里下载elasticsearch-7.10.0,因为win7不支持搞版本的nodejs;下载后解压到目录。修改配置jvm.options-Xms2g-Xmx2gelasticsearch.ymlcluster.name: my-applicationnode.name: node-1network.host: 0.0.0.原创 2022-04-11 14:02:55 · 1923 阅读 · 0 评论 -
elasticsearch查询filebeat采集的日志
依赖不要问为什么不用7或者8,因为不会 <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>6.8.5</version></depende原创 2022-03-24 13:27:40 · 3475 阅读 · 0 评论 -
java和shell实现光大MFT文件上传下载
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、创建模板Template.txt二、脚本三、java调用脚本1.引入库2.执行远程shell脚本代码一、创建模板Template.txtopen cebbanklcd /tmp/cd 0000000001newjobput 1.txtjobsubmitclose二、脚本#!/bin/bash######### 光大代扣脚本 ######################## autor junfe.原创 2022-03-09 12:11:33 · 3541 阅读 · 0 评论 -
Cause: java.sql.SQLSyntaxErrorException: ORA-00933: SQL 命令未正确结束
mybatis 批量插入数据到oracle报 ”java.sql.SQLException: ORA-00933: SQL 命令未正确结束“ 错误解决方法 <insert id="insertReconciliationDate" parameterType="List"> insert into tb_wechat_reconciliation (wxid,mch_id,son_mch_id,transaction_hour,device_.原创 2022-01-06 20:31:37 · 2274 阅读 · 0 评论 -
Socket
客户端package com.junfeng.socket;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;/** * Created with IDEA * description: * Date:12/22/21 23:32 */public class TCPClient { public static void main(String[] args) th原创 2021-12-22 23:54:27 · 48 阅读 · 0 评论 -
Unsupported major.minor version 52.0
产生问题的原因:执行代码的jdk版本低于编译的jdk版本JDK版本和Java编译器内部的版本号J2SE 8 = 52,J2SE 7 = 51,J2SE 6.0 = 50,J2SE 5.0 = 49,JDK 1.4 = 48,JDK 1.3 = 47,JDK 1.2 = 46,JDK 1.1 = 45解决使用运行jdk版本编译eclipse如下图操作...原创 2021-12-04 11:12:56 · 74 阅读 · 0 评论 -
tomcat启动慢
1)在Tomcat环境中解决可以通过配置JRE使用非阻塞的Entropy Source。在catalina.sh中加入这么一行:-Djava.security.egd=file:/dev/./urandom 即可。加入后再启动Tomcat,整个启动耗时下降。2)在JVM环境中解决打开$JAVA_PATH/jre/lib/security/java.security这个文件,找到下面的内容:securerandom.source=file:/dev/urandom替换成sec原创 2021-11-15 18:54:07 · 77 阅读 · 0 评论 -
java.util.ConcurrentModificationException
foreach遍历的时候报错ConcurrentModificationException for(Map map:yhbill){ if (!Ltdno.HEATING_FEE.type.equals(map.get("ltdno"))) { yhbill.remove(map); } }修改成如下OK Iterator<Map> it = yhbill.iterator(); while(it.hasNext()){ M原创 2021-11-11 17:21:25 · 216 阅读 · 0 评论 -
将tomcat启动设置成server服务
启动、重启、停止tomcat脚本脚本名称 xxx.sh# !/bin/bash# description: starts the tomcat deamonsJAVA_HOME=/home/xxxx/jdk1.8.0_291export JAVA_HOMECATALINA_HOME=/home/xxxx/apache-tomcat-9.0.52CATALINA_BASE=/home/xxxx/apache-tomcat-9.0.52/export LANG=zh_CN.UTF-8原创 2021-11-10 17:58:08 · 895 阅读 · 0 评论 -
cookie&session
cookie&session会话技术1. 客户端会话技术:Cookie2. 服务器端会话技术:SessionCookie概念客户端会话技术,将数据保存到客户端快速入门使用步骤:1. 创建Cookie对象,绑定数据* new Cookie(String name, String value)2. 发送Cookie对象* response.addCookie(Cookie cookie)3. 获取Cookie,拿到数据* Cookie[原创 2021-09-26 09:48:24 · 69 阅读 · 0 评论 -
WINDOWS TOMCAT控制台打印日志乱码
修改conf文件夹下面的logging.properties文件在最后面增加java.util.logging.ConsoleHandler.encoding = GBK原创 2021-09-15 15:46:04 · 117 阅读 · 1 评论 -
HTTP介绍
概念Hyper Text Transfer Protocol 超文本传输协议* 传输协议:定义了,客户端和服务器端通信时,发送数据的格式* 特点:1. 基于TCP/IP的高级协议2. 默认端口号:803. 基于请求/响应模型的:一次请求对应一次响应4. 无状态的:每次请求之间相互独立,不能交互数据* 历史版本:* 1.0:每一次请求响应都会建立新的连接* 1.1:复用连接请求消息数据格式1. 请求行 请求方式 请求url 请求协议/版本GE原创 2021-09-11 17:14:44 · 49 阅读 · 0 评论 -
Servlet
Servlet概念server applet概念:运行在服务器端的小程序* Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。* 将来我们自定义一个类,实现Servlet接口,复写方法。执行原理:1. 当服务器接受到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径2. 查找web.xml文件,是否有对应的<url-pattern>标签体内容。3. 如果有,则在找到对应的<servlet..原创 2021-09-09 23:53:19 · 52 阅读 · 0 评论 -
Java学习整理
术语OOA:面向对象分析OOD:面向对象设计OOP:面向对象编程GC:Garbage Collector垃圾回收器jdk下载https://www.oracle.com/java/technologies/javase-jdk11-downloads.html内部类内部类的优势在于可以访问外部类的私有属性。Lambda表达式方法没有参数:()->{};方法有参数:(参数,参数)->{};简化:(参数,参数)->语句;内..原创 2021-08-27 21:50:10 · 96 阅读 · 0 评论 -
The maximum number of cell styles was exceeded. You can define up to 4000 styles in a .xls workbook
原因:POI操作Excel中,导出的数据不是很大时,则不会有问题,而数据很多或者比较多时,就会报以下的错误,是由于cell styles太多create造成解决方法:一般可以把cellstyle设置放到循环外面或者将setCellStyle注释掉private static void xmlToExcel(FileOutputStream fos, OutputStream os, Document doc) { try { HSSFWorkbook wb = new..原创 2021-07-30 10:52:14 · 959 阅读 · 0 评论 -
java Double去掉科学计数“E“
DecimalFormatdf=newDecimalFormat("0.00");Doubled=newDouble("1.237355861E10");System.out.println(df.format(d));原创 2021-07-16 13:53:34 · 839 阅读 · 1 评论 -
java流
java流字节处理流:OutputStream(输出字节流) InputStream(输入字节流)字符处理流:Writer(输出字符流) Reader(输入字符流)关闭流在使用OutputStream的时候如果没有使用close()方法关闭流,内容依然可以正常输出;在使用Writer的时候如果没有使用close()方法关闭流,内容不能正常输出,因为Writer使用到了缓冲区;flush()方法用于刷新此Writer流。 当流将来自不同write()方法的任何字符保存到缓冲区中后,立即原创 2021-07-01 08:50:18 · 56 阅读 · 0 评论 -
Address already in use:connect
在使用HttpClient时,调用短信接口报错:Address already in use:connect原创 2021-06-08 11:34:20 · 2294 阅读 · 0 评论 -
Caused by: java.lang.NoClassDefFoundError: oracle/i18n/util/LocaleMapper
现象解决In my case I had the Oracle Jars installed under $CATALINA_HOME/lib to be able to set up a JNDI DB connection in Tomcat, simply removing xmlparserv2.jar from the $CATALINA_HOME/lib directory resolved the problem.在我的例子中,我在$CATALINA\u HOME/lib.原创 2021-05-22 14:18:05 · 1028 阅读 · 0 评论 -
Property maxActive is not used in DBCP2, use maxTotal instead. maxTotal default value is 8. You have
现象tomcat启动警告提示:Property maxActive is not used in DBCP2, use maxTotal instead. maxTotal default value is 8. You have set value of "100" for "maxActive" property, which is being ignored数据库配置说明本人用的tomcat9,数据库配置 <Resource name="jd.原创 2021-05-19 09:55:00 · 2448 阅读 · 0 评论 -
Map了解一篇就够了
Map的四种遍历方式package com.junfeng;import java.util.HashMap;import java.util.Iterator;import java.util.Map;/** * Created with IDEA * author:TangJunfeng * description:Map遍历方式 * Date:4/21/21 06:55 */public class TestMap { public static void ma原创 2021-04-24 21:25:53 · 88 阅读 · 0 评论 -
shell脚本检查tomcat应用健康状态
1.首先应用编写一个接口(http均可)接口查询数据库中随便一个表一条数据,正常返回数据则public String getResult(){ //TODO 查询数据库数据 List list = queryUser(); log.info("=================hart==============心跳请求!"); if(list.size()>0){ return "OK"; } return "OK"; }2.原创 2021-04-21 19:28:54 · 1100 阅读 · 1 评论 -
sha1加密算法结果不一致
现象:生产环境sha1加密算法结果不一致问题排查程序放到服务器后SHA1加密返回客户端后,SHA(XML串+秘钥) 返回给客户端。客户端解密验签失败。使用http://www.ttmd5.com/hash.php?type=5网站加密后返回加密后内容与服务程序加密结果不一致。但是自己编写main方法执行与网站加密结果一致,推测生产环境参数导致,解决方法:1.更换jdk与本地一致(未解决问题)2.修改tomcat编码(WINDOWS服务器)catalina.bat:set.原创 2021-04-20 23:54:58 · 2473 阅读 · 0 评论 -
redisson锁实现
1.maven引入依赖 <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.11.2</version> </dependency>2.配置redissionrediss原创 2021-02-06 20:34:49 · 76 阅读 · 0 评论 -
java重命名文件和删除长时间未修改文件
场景:1.重命名文件:替换文件中某部分值2.删除长时间未修改的文件,入日志文件代码:package com.commons.util;import java.io.File;import java.util.Calendar;import java.util.Date;import org.apache.log4j.Logger;/** * @ClassName: DeleteFilesSimpe * @Description: 1.java删除指定目录下前N天的文.原创 2021-02-03 10:57:10 · 108 阅读 · 0 评论 -
maven missing artifact
由于有一个私有仓库废弃,换新的仓库地址,maven配置地址改了,导致maven文件提示:maven工程jar、POM文件提示missing artifact的问题由于maven仓库本地设置了两个路径,因此首先合并两个库为一个。处理办法:1、清除本地仓库中非使用的jar文件外的文件(如:*.pom、*.lastUpdated、*.pom.md5、*.sha1、_remote.repositories等)2、完成以上操作,回到eclipse中,右键工程-->Maven-->u.原创 2021-01-20 19:47:16 · 186 阅读 · 0 评论 -
net.sf.json.JSONObject to Map 数字太大被转成科学计数法的问题
今天项目中遇到一个奇怪的问题String json = "{'userno':"111111111.1234",'orderid':111111111.1234}";Map<String,Object> jsonMap = JSONObject.fromObject(json);通过JSONObject.fromObject转换之后变成了:{userno=111111111.1234, orderid=1.111111112E8}后面转成实体返回给前端ID值被加1了,很奇怪原创 2021-01-19 19:21:56 · 1600 阅读 · 0 评论 -
SHA1加密
前言SHA是一种数据加密算法,该算法经过加密专家多年来的发展和改进已日益完善,现在已成为公认的最安全的散列算法之一,并被广泛使用。该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。散列函数值可以说是对明文的一种“指纹”或是“摘要”,所以对散列值的数字签名就可以视为对此明文的数字签名。何谓数字签名数字签名主要用到了非对称.原创 2020-12-31 16:30:56 · 3949 阅读 · 0 评论 -
pdfbox报错缺少字体问题解决
使用PDFBOX将PDF转换成PNG时,字体模糊,看日志缺少宋体,将附件字体安装到Linux系统后解决问题添加字体到系统文件夹#新建目录newFont以存放新字体mkdir /usr/share/fonts/chinese/#上传或者拷贝当前目录下的字体到/usr/share/fonts/chinese中建立字体缓存cd /usr/share/fonts/chinese/mkfontscale; mkfontdir; fc-cache -fv注意事项:更新字体缓存..原创 2020-09-28 16:45:28 · 3321 阅读 · 0 评论 -
修改jar包并打包
1.将jar使用WinRAR打开。2.右击com保存文件。3.将需要修改的class使用jd-gui反编译,然后在一个项目里面创建同包名的java文件,编译生成class文件,然后将此文件复制覆盖到上面步骤生成class文件4.最后使用命令打包jar jar cvf XXX.jar com/ ...原创 2020-09-15 16:14:37 · 301 阅读 · 0 评论 -
LRUMap防止重复提交
工具类封装import org.apache.commons.collections4.map.LRUMap;/** * 幂等性判断 */public class IdempotentUtils { // 根据 LRU(Least Recently Used,最近最少使用)算法淘汰数据的 Map 集合,最大容量 100 个 private static LRUMap<String, Integer> reqCache = new LRUMap<>(1原创 2020-07-24 09:23:38 · 474 阅读 · 0 评论 -
java限流控制并发数量
package com.webservice.service;import java.text.SimpleDateFormat;import java.util.Date;import java.util.concurrent.Semaphore;/** * @ClassName: TestSemaphore * @Description: * @Author adm * @DateTime 2020年6月10日 上午9:53:13 */public class TestS.原创 2020-06-10 10:15:25 · 1299 阅读 · 1 评论 -
处理socket半包、粘包问题记录
1、查看本地MTU值及设置MTU值netsh interface ipv4 set subinterface "本地连接" mtu=1460 store=persistentnetsh interface ipv4 show subinterfaces2、在读取socket中流时,如果用读取socket中流,由于read方法会阻塞,用-1判断流结束,会出现半包问题//此种方法...原创 2020-04-15 00:03:12 · 319 阅读 · 0 评论 -
Java 8 新特性总结
Lambda表达式老版本list排序List<String> names = Arrays.asList("peter", "anna", "mike", "xenia");Collections.sort(names, new Comparator<String>() { @Override public int compare(String...原创 2020-02-23 00:11:17 · 214 阅读 · 0 评论 -
java线程池(每天学习一点20200101)
使用线程池的好处降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。Executor 框架结构1) 任务(Runnable/Callable)执行任务...原创 2020-01-01 22:27:21 · 93 阅读 · 0 评论 -
Java 并发(每天学习一点点20191227)
进程是程序的一次执行过程,是系统运行程序的基本单位。线程与进程相似,但线程是一个比进程更小的执行单位。上下文切换多线程编程中一般线程的个数都大于 CPU 核心的个数,而一个 CPU 核心在任意时刻只能被一个线程使用,为了让这些线程都能得到有效执行,CPU 采取的策略是为每个线程分配时间片并轮转的形式。当一个线程的时间片用完的时候就会重新处于就绪状态让给其他线程使用,这个过程就属于一次上...原创 2019-12-27 23:21:11 · 75 阅读 · 0 评论