自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Oxye

不积跬步无以至千里

  • 博客(124)
  • 收藏
  • 关注

原创 Java 发送HTTP请求,在TCP报文中添加自定义头部

研究了一下HttpClient、RestTemplate没能做到我需要的修改tcp报文的扩展点,拦截器之类测试不行,所以通过修改源码处理。目的是想在TCP头部之后、HTTP头部之前,添加自定义的报文内容,供被调用方识别自定义内容做业务处理。前提又不想修改原先的HTTP调用代码,使用的是httpclient。

2024-03-30 09:55:29 128

原创 Rclone文件传输设置禁止分段,不产生partial类型临时文件

Rclone进行SFTP传输时,遇到大文件(大几十MB)就会出现多次传输.partial后缀的临时文件,根据官方文档,可以添加–inplace参数,让传输只有一次,不分段,好处是接收方判断新增文件不复杂另外–partial-suffix也能自定义临时文件后缀名参考官方文档。

2024-02-27 11:49:43 569

原创 解决oracle.sql.TIMESTAMP序列化转换失败问题 及 J2EE13Compliant原理

通过设置属性oracle.jdbc.J2EE13Compliant=true,可以时oracle的timestamp以oracle.sql.TIMESTAMP类型返回,不设置时默认false,返回oracle.sql.TIMESTAMP,可能会导致序列化时类型转换失败等问题。

2023-12-05 14:16:48 922

原创 Chat2DB Web版 服务器端安装部署启动流程

Chat2DB是款数据库连接工具,主要就是使用JDBC做数据库连接,外加多对接了几个聊天AI网站,把数据库和AI做了个集成,比使用传统工具Navicat,再另外去AI查方便一点。官网可以直接下客户端使用,也可以部署到服务器上用浏览器访问,但是我找了半天没发现Web版的部署方法,所有就写一篇Web版的安装、部署、启动的流程,不一定适合每个人,因为每个人的环境、软硬件不一样,仅供参考。

2023-10-31 14:44:55 3213 13

原创 H2 + flyway报错Error creating bean with name ‘flywayInitializer‘ defined in class path resource

日志里h2的文件位置在~/.chat2db/db/chat2db_dev,可以去删掉这个路径的文件,重启就好了。有可能的原因之一是以前初始化了一半的脚本影响了后续初始化,可以删掉已有的内容重新开始。

2023-10-31 13:49:48 602

原创 org.apache.sshd的SshClient客户端 连接服务器执行命令 示例

SshClient使用示例代码,可以直接执行,也可以做替换命令、维护session等修改。

2023-10-19 16:19:53 1749

原创 Linux:修改mvn命令使用的maven路径

要在 Linux 上更改 Maven 的版本,需要调整。确保将上述路径替换为实际的 Maven 安装目录路径。环境变量以指向所需版本的 Maven 安装目录。在文件的末尾添加以下行,将。打开终端或命令行界面。

2023-09-26 11:09:19 549

原创 Java:本地文件通过表单参数接口发送后大小变成0

发现一个文件生成以后,如果不通过接口发送,大小就正常,通过接口发送,文件大小就变成0了,发送的文件也是0 空文件。

2023-09-15 14:25:35 205 1

原创 SpringBoot+Mybatis 动态多数据源

基于SpringBoot、Mybatis、Druid实现一个服务连接多个数据库的动态数据源代码,本文中数据源是固定两个,在配置文件和代码中写死成两个了,如果需要更多可以修改配置和代码,更灵活的方式是把数据源写成数组,这样代码就不用改多少。可以看出代码中的数据源配置来源是配置文件,那其实通过接口等方式动态控制数据源和运行中的代码也是可以的,客官可以自己实现。

2023-05-11 10:46:01 319 1

原创 SpringBoot:使用application/octet-stream 流式上传大文件,解决Mutipartfile multipart/form-data上传产生临时文件问题

multipart的流不是HTTPRequest的流,而是服务器的临时文件流multipart/form-data是表单上传,接口可以从Mutipartfile对象获取输入流getInputStream,表面上看没产生临时文件org.springframework.web.multipart.support.StandardMultipartHttpServletRequest的getInputStream这里面的流是从DiskFileItem(一眼磁盘)拿的,还告诉了你临时目录位置location。

2023-04-28 10:45:37 5720

原创 HashMap、ConcurrentHashMap 一行代码实现批量删除元素

我不想迭代器遍历,想找个短点的方式,但是查了一下没满意的,自己搞一个,比较初级的代码。

2023-04-25 17:52:53 799

原创 Netty的客户端使用Socks5代理,netty-handler-proxy源码浅析

一个netty代理服务,里面有netty服务端ServerBootstrap接收外部客户端连接,netty客户端Bootstrap去连接外部服务端,但代理服务和服务端网络不一定可达,所以netty的客户端有时候就需要连一个跳板机去转发报文到外部服务。这个跳板机也是netty实现的socks代理服务器,搭建流程可参考此文netty系列之:从零到壹,搭建一个SOCKS代理服务器注意,所以这篇讲的是netty服务里的客户端Bootstrap,怎么走到socks代理服务器。

2023-03-31 18:07:45 1713 1

原创 JAVA实现HTTP接口代理,支持视频等大文件代理下载

避免将外部系统的视频等资源文件的地址暴露给用户,一种思路是使用http代理。没有使用netty实现http代理,可以使用更简单的一段代码进行代理,代理接口收到的请求可以进行鉴权等操作。要求是支持视频的下载,代理服务不对文件进行临时下载,直接把文件流交给浏览器。暂时实现的只有get请求代理,其他类型请求自行修改吧。

2023-03-30 15:09:33 996

原创 Netty:解决粘包、半包问题,实现ByteToMessageDecoder解码器分包

开发时使用netty的解码器解析协议报文时,出现StringIndexOutOfBoundsException报错,debug发现是协议头总长度和当次读取的数据总长度不一致,看来是遇到半包问题了,所以通过下面的代码解决,供参考。核心手段是使用ByteBuf 的markReaderIndex、resetReaderIndex来控制对ByteBuf对象的读取,长度不够就攒着,够了就读走想要的部分。我们约定协议的byte数组结构为 3位长度+1位id+对应长度的数据。

2023-03-20 15:17:43 945

原创 连接Nacos的服务程序快速无限打日志longPolling、ClientWorker

一个微服务环境里很多服务启动以后疯狂打日志,日志是从nacos更新配置。[com.alibaba.nacos.client.Worker.longPolling.fixed-10.***.***.***_***-public] ClientWorker INFO -[fixed-10.***.***.***_**-public] [data-received] dataId=yourDataId, group=yourGroup, tenant=public, md5=5d3ae422a85ee3679

2023-02-23 21:03:28 1733 2

原创 Apache SSHD服务端:ssh2、sftp 登录验证超时时间、连接断开超时时间

通过ssh2、sftp协议连接基于Apache MINA SSHD的服务时,长时间不用连接会自动断开,我们来看一下默认断开时间和如何修改断开时间。

2023-02-22 17:36:06 2124

原创 Druid 数据库连接池默认大小

【代码】Druid 数据库连接池默认大小。

2023-01-30 17:45:23 1359

原创 南大通用数据库 GBase:gbase8s 判断表是否存在

MySQL查询表的SQL是SHOW TABLES LIKE,相当于GBase的select * from ...

2023-01-04 19:58:56 546

原创 SpringBoot:集成H2数据库并持久化,url中mem、file有什么区别?

持久化配置SpringBoot版本是2.3.12.RELEASE,下面有些配置看SpringBoot版本的,比如spring.datasource.schema是这个版本以下的,spring.sql.init.data是更高版本的./dbfile 是把持久文件生成到程序启动路径下,你也可以自定义其他路径H2 url的含义先看以下两个常量,代表url开头与后半段,后半段的类型有mem内存模式、file本地文件模式、tcp|ssl远程模式,含义如下(参考http://www.h2database.com/

2022-11-30 14:02:26 4382

转载 Java中的byte & 0xff到底有什么作用?

byte & 0xff 是将byte从(-128 至 127)转化成 int(转化后的数值范围: 0 至 255)。其实就是1个byte有两种表示方法,我们既可以用-128 - 127这段范围来表示一个字节,也可以用 0 - 255这个范围的数来表示一个字节。

2022-11-24 11:24:54 1321

原创 RocketMq:响应码列表,code=11

发mq失败,问响应码11什么意思,因为不是同一个语种的,我下了份RocketMq源码看一下,应该是下面这个,11对应SLAVE_NOT_AVAILABLE。方面大家查找RocketMq响应码

2022-11-23 18:54:31 443

原创 SpringBoot Mybatis Oracle相关报错解决与原理源码解析:java.sql.SQLException 无效的列类型 1111

TypeException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property.java.sql.SQLException: 无效的列类型: 1111

2022-10-25 18:47:17 4709 2

原创 Linux:非root、普通用户安装rpm(fontconfig、fc-cache命令)、中文字体

非root帐号,普通帐号,不能使用yum、rpm命令Libreoffice、pdf转换等中文不显示-bash: fc-cache: 未找到命令Fontconfig error: Cannot load default config file

2022-10-22 19:27:53 5174

原创 ShardingJDBC:适配OceanBase

sharding-jdbc版本

2022-10-20 17:29:56 1557 1

原创 Nacos:快速不停打印获取配置 c.a.n.client.config.impl.ClientWorker : get changedGroupKeys[${dataId}+${grou

SpringCloud项目连接Nacos无限打印日志内容

2022-10-17 14:03:17 1414 1

原创 SpringBoot+Liquibase+jar包外置changelog配置文件

此篇重点是SpringBoot自动装配Liquibase时,如何实现把changelog文件外置到jar包外。报错Specifying files by absolute path was removed in Liquibase 4.0. Please use a relative path or add '/' to the classpath parameter.

2022-10-09 11:18:12 1540

原创 r2dbc-proxy与JCBC程序结合的可行性研究

r2dbc-proxy是基于r2dbc-spi实现的代理程序,可基于java agent或结合Sleuth的方式对基于r2dbc的程序进行代理,修改原程序的r2dbc连接工厂,在数据库操作的各个阶段插入自定义逻辑r2dbc的核心是连接工厂使用r2dbc访问关系型数据库的核心是创建一个io.r2dbc.spi.ConnectionFactory接口的实例(通常使用单例)数据库支持。

2022-09-30 00:00:00 373

原创 无root sudo权限下解压安装rpm文件并设置so库文件路径

前提:没有root权限、没有sudo权限,不能使用rpm目录安装。

2022-09-28 10:14:52 1015

原创 Shell遍历文件、文件夹/目录

执行时需要输入【文件名】,如果要输入文件就加【>文件名】,如sh list.sh /home >list.txt。遍历文件,并输出文件大小,单位为kb。

2022-09-16 17:53:27 10801

原创 Nacos注册失败,ConsistencyException NoLeaderException: The Raft Group [*] did not find the Leader node

Nacos 持久实例注册失败,NacosException、ConsistencyException、NoLeaderException The Raft Group [*] did not find the Leader node

2022-09-09 09:47:49 3613

原创 Jsch session channel timeout 默认连接超时时间机制

代码示例上面的session和channel连接时都使用了无参构造函数,我看有的人说要穿连接超时限制,但是也没说默认连接超时时间是多久,所以自己得看看,可能他设个5000毫秒,也可能设个-1、0之类的永不超时com.jcraft.jsch.Session默认时间是0有多种连接方式,如socket_factory、proxy,如我们看socket_factory的createSocket就行也可以看到当connectTimeout>0时进行了setSoTimeout设置,所以说这个连接的connectT

2022-08-15 13:45:02 5324

原创 RocketMQ源码:消费重试次数默认值与设置自定义值

RocketMQ源码:消费重试次数

2022-08-10 14:03:42 1510

原创 java.io.FileNotFoundException: MultipartFile resource [file] cannot be resolved to absolute file pat

fastjson转换文件类型MultipartFile的参数失败。在实体类对应字段标防止序列化的注解。

2022-07-19 10:36:47 6556

原创 Mybatis:字符比较导致的报错 MyBatisSystemException PersistenceException NumberFormatException

MyBatisSystemException PersistenceException NumberFormatException

2022-07-15 11:49:18 639

原创 Linux:kkFileView v4.0.0 安装、启动教程

预览组件-kkFileView 官网:https://kkfileview.keking.cn/zh-cn/docs/production.html官网安装教程较为简单,无4.0.0版的教程https://gitee.com/kekingcn/file-online-preview/releases 上说,v4.0.0对应LibreOffice7.12.安装 kkFileViewkkFileView-4.0.0 下目录结构把office.home改成自己安装的libreoffice7.1如果你本来

2022-07-01 11:12:08 9331 9

原创 sftp连接工具ganymed-ssh2,连接不到Apache SSHD sftp服务器的问题

上篇解决了低版本jsch连接sftp服务器的问题,后来又发现一个项目中有另一个连接工具ganymed-ssh2,再来解决一下查看版本,是2006年的包,很有可能也是算法跟不上的问题依赖如下kex algorithms不匹配问题使用此依赖,测试连接本地sftp服务器,本地sftp服务器警告kex algorithms不匹配问题 :意思是客户端支持的算法和服务端没有能对应上的在此类其实能搜到org.apache.sshd.common.kex.BuiltinDHFactories但均标注了@Depre

2022-06-19 23:29:53 1789 1

原创 sftp连接工具jsch:0.1.54与0.1.55版本的区别,连接到Apache SSHD

项目中使用不同版本jsch包连接sftp,出现低版本连不上的问题,影响一些老项目,就看了一下原因Q:使用jsch 0.1.54连接apache-mina-sshd 2.8.0时报错验证失败 verify false深层思考Q:jsch 0.1.54 与0.1.55搭配apache-mina-sshd 2.8.0的区别使用Beyond Compare工具对0.1.54和0.1.55的jsch包进行了对比com.jcraft.jsch.JSch发现如下结果com.jcraft.jsch.jce.Signat

2022-06-19 23:18:33 4435 6

原创 LibreOffice 下载、Linux安装、启动、Java集成pdf转换

官网中文主页:https://zh-cn.libreoffice.org/点击下载,可选Linux、macOS、Windows三大类及其不同处理器对应的定制包本次在Linux安装使用 LibreOffice_7.3.3_Linux_x86-64_rpm.tar.gz将安装包放到Linux上安装进入RPMS文件夹中,安装过程中遇到选择,输入 y 回车安装成功后会在 下生产一个 的文件夹启动时会把pid打到这行命令下面Linux本地测试文档转换命令:查看进程查看端口占用Java集成工具包

2022-06-09 17:45:07 3706

原创 SpringBoot:使用Apache SSHD搭建基于JAVA的SFTP服务器

依赖服务器端<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springfram

2022-05-23 11:32:22 3933 3

原创 SpringBoot:一份可用的logback.xml配置

简介一份可用的logback.xml配置,可以按日期、文件大小切分文件生成文件列表效果如下project-debug-20220519.0.logproject-error-20220519.0.logproject-info-20220519.0.logproject-info-20220519.1.logproject-info-20220519.2.logproject-warn-20220519.0.logproject-debug-20220518.0.logproject-e

2022-05-19 17:19:42 442 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除