自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)
  • 收藏
  • 关注

原创 西门子PLC300系列与上位机无法建立以太网通信问题

最近做一个Java开发的WCS项目需要对接机械臂,使用的是PLC313型号,按照之前和其他型号PLC例如1200系列或者1500系列对接的经验配置好相关IP,DB块以及数据结构偏移量以后发现无法建立连接。没看出啥问题,又咨询了电气同事,他们也没使用过300系列的西门子PLC,网上也搜不到相关的报错信息。网上找了半天问题原因,没找到,后来在一篇文章中发现。

2023-07-14 17:36:14 1140

原创 系统对接之以中间表形式对接,使用SpringBoot整合多数据源

系统对接之以中间表形式对接,使用SpringBoot整合多数据源

2022-07-21 22:04:41 2409 1

原创 netty报错LEAK: ByteBuf.release() was not called before it‘s garbage-collected.的解决方法

问题背景:最近一个项目要对接一个电子秤,电子秤串口转网口直连用户一体机,在用户一体机上写一个程序读取称重数据并以客户端形式发送给服务器上的WCS服务。WCS服务里使用netty写了个服务端接收数据。问题产生:刚开始我在建立连接的地方打了个日志,并且将获取到的数据也打了个日志,一切运行正常。后来觉得使用tcp短连接,连接成功的日志一直打印很占日志,影响后期问题定位,就将打的日志给删掉,发现报这个错,加了日志输出就正常运行,感觉很奇怪,也没分析...

2022-05-12 19:16:16 6989 1

原创 Java实时获取本地日志文件更新内容中指定格式数据并以客户端形式发送给服务端

这些天在做的一个项目里面,客户对于自动化要求比较高,我们使用的大华的工业相机和配套的OCR软件,来拍照识别入库的货物的sku码和sn码,并发送给WCS系统,我们WCS系统再发给WMS系统。刚开始,我们制定的方案是OCR——》输送线PLC——》WCS——》WMS,但是PLC那边说由于一个区域有8个相机一起给他发数据无法存储那么多数据,后来就改为OCR直接通过TCP通信发给WCS这边。OCR是客户端发送,WCS是服务端接收。由于种种硬件软件问题导致拖延项目交付时间,我这边就写...

2022-04-07 19:00:23 5939

原创 Windows和Linux系统使用开机自启动文件夹实现jar包服务的开机自启动

服务器部署服务的时候经常需要将服务设置为开机自启动,就是为了防止现场断电服务器关机的情况。一般情况下web服务比如前后端不分离使用的是MVC开发,生成的war包会放在tomcat下,设置tomcat自启动,那么也就相当于服务自启动。另一种基于jar包的前后端分离项目,我们可以将每个jar包设置为系统级服务,再设置该服务开机自启动也可以实现。微服务架构或者多个jar包服务情况下也可以使用docker统一管理部署,设置开机自启动。但是对于一些服务器使用的比如Windows Server12系

2022-02-19 17:20:38 991

原创 Java实现Excel导入导出(附Demo)

之前也写过Excel的导入导出功能,但是都是直接在方法中利用easyExcel来进行转化,但是一个大型的管理系统中,必然会有很多的Excel导入导出功能需求,因此整理了一个excel工具类,附上对应已经实现的demo。 工具类:ExcelUtils:package com.example.webdemo.utils.excel;import com.alibaba.excel.EasyExcelFactory;import com.alibab...

2022-02-17 17:46:00 5066 2

原创 接口调用成功,功能实现但是返回404报错

正常情况下我们都知道http请求,404是url不存在,200是接口调用成功,500是接口调用时候发生异常。 但是昨晚写接口时候发现了一个很奇怪的问题,写了一个excel批量导入的接口,功能实现了数据库插入了数据,但是postman反馈状态码是404。如下图展示进入了debug断点:数据库成功插入数据:反馈的状态码是404:查了半天才发现原来是我不知道哪里设置了必须返回json格式,我这边没设置。只需要在接口上否添加@ResponseB...

2022-02-17 17:07:35 9293 2

原创 Java使用easyExcel批量导入数据

WMS、ERP等管理系统经常涉及库存、人员信息的管理,通常我们会提供一个模板,此模块我们可以使用easyExcel导出数据生成的一个Excel文件当作模板,提供下载链接。用户在该文件内填入规定的数据格式以后可以批量导入数据到数据库中。controller层: //excel批量导入用户数据 @PostMapping("/user/import") public Object addUserList(@RequestParam("file") MultipartFil

2022-02-17 11:24:29 3339

原创 Java多文件生成并压缩下载

年前一直忙着项目现场实施,没时间整理,今天终于得空开始整理。做WMS系统经常会遇到导出各种类型的库存单,此时就可以在后台将这些整合压缩到一个压缩包内然后再下载压缩包,一个接口就可以完成的事。有两个思路:思路一:将生成的多个文件先逐个存到本地一个临时的文件夹内并压缩,获取压缩文件下载,下载完以后删除该临时文件夹和内部文件思路二:所有都在内存中实现,将生成的多个文件的输出流转换成为byte数组塞入压缩包的输出流中,最后下载该压缩包第一个思路虽然操作复杂,但是却很容易想到的。第二个思路

2022-02-14 19:04:20 6370

原创 JAVA通过tcp通信劳易测BCL 308i扫码枪获取数据

最近项目里面要集成一个扫码枪,我来负责对接。不得不说,这个扫码枪属实是我见过最烦的。首先便是硬件,送过来需要自己组装,然后网线需要自己做一根来接入他们的引脚,也没有充电线需要24V电压,得需要电压转换器然后直连。硬件有电气负责搞好,然后就是软件部分。正常一个硬件设备接手的时候,会有一个文档告知通信协议,有些好一点的都有对应的SDK,而这个官网上只有一个116页的英文PPT,问售后说没有中文版本的=====,没办法只能用网易有道词典一个一个截屏翻译看了===== 吐槽归吐槽...

2021-10-22 19:41:41 2393

原创 十六进制字符串与byte数组与ASCII码互相转换

日常工作中,对接一些硬件使用tcp通信,需要将输入输出流转16进制字符串再在表中找到与其对应的ASCII码,并转换作为结果。因此,这里整理了一个工具类,用于这三者的相互转换。十六进制字符串转byte数组: //十六进制字符串转byte数组 public static byte[] hexStringToByteArray(String s) { int len = s.length(); byte[] ba = new byte[...

2021-10-22 18:54:49 5859

原创 创建springboot项目时候遇到的一些问题

最近想着创建一个springboot项目用来练练手,毕竟平时都是搞wcs系统和硬件打交道,主要都是一些串口通信、tcp通信、udp通信等,将近半年没有写过sql语句了,没想到创建项目时候就遇到了一些问题。项目结构:SpringBoot Could not autowire无法注入:springboot项目创建一般有controller层、service层、serviceImpl层、dao层和mapper层。使用@Autowired注解时,...

2021-10-21 14:24:18 283

原创 spring boot项目打包成jar包加密部署服务允许服务器开机自启

上篇文章讲了使用远程工具远程部署服务允许在后台不挂断运行,这样基本上已经可以满足正常项目上的需求了,不过我们还可以在此基础上继续优化操作做的更好。 将jar包加密+将服务转化为服务器系统级服务,设置允许开机自启,这就是优化后的方案。 每个公司都有自己的一套框架以及算法,各个项目都在此基础上做修改和优化以及针对客户需求进行定制化开发。我们正常使用idea对spring boot项目进行打包时,会将可编辑的.java项目转化为不可编...

2021-10-15 20:29:39 2523

原创 使用finalshell、xshell等工具连接远程Linux系统运行Java项目,退出工具时服务也关闭了

昨晚同事问我一个问题,使用finals hell连接远程Linux服务器部署spring boot服务时,关闭连接服务也断开了,问我什么原因 我们正常情况下在本地Windows系统中部署服务,是在cmd窗口下使用 java -jar xx.jar命令部署运行。此时我们的窗口未关闭,服务就会一直运行,窗口关闭,服务也就关闭了。同样的原理,我们使用远程工具与服务器建立连接时,其实相当于是一个命令窗口,正常启动服务运行服务是可以的,关闭连接也就相当于关闭了窗口,自然...

2021-10-15 15:36:09 2695

原创 virtual box安装Linux系统并关闭防火墙

第一步:Linux系统镜像下载我这边使用的是阿里云提供的,不使用官网的,下载速度快一点。下那个DVD.iso的就可以了。Index of /centos/7.9.2009/isos/x86_64/区分一下DVD、Everything、Minimal、NetInstall区别CentOS ISO:DVD是标准安装盘,一般下载这个就可以了,里面包含大量的常用软件,大部分情况下安装时无需再在线下载,体积为4G;Minimal ISO:精简版本,包含核心组件,体积才600多MB;Everyt

2021-10-12 11:05:14 917

原创 Java中几种基本类型的相互转换

最近项目中将double类型数据转 int类型时竟然发生了精度丢失,查了好几个资料才明白原因,这不禁让我想写一个Java中几种主要用的基本类型int、double、float、String的相互转化的一些方法并解释产生问题的原因,最后还补充了一个不常用的类型BigDecimal,以此记录。int转所有类型: //int转所有类型 public static void intCastAll(int i,double db,float fl,String str){...

2021-10-11 17:10:24 631

原创 项目定义的是int类型,通过接口调用却变为double类型

今天对接接口时候发现一个问题,上层系统中传了一个int类型的id给我,我这边接收到的却是double类型,不管是项目中还是postman测试都是传的double类型,可是上层系统定义的就是int类型而且他本地postman测试的也显示的是int类型,于是我上网查找资料,最终发现了一篇博客有记录该问题。java maptolong_Gson解析Map数据结构导致的long类型转变成double类型的案例_杨小乱的博客-CSDN博客由于该博客的排版等问题,我这边就大致的解释一番。...

2021-10-09 19:21:21 1220

原创 Java中判断集合是否相等

工作中经常会遇到这样一个需要:写一个定时任务每隔5s监听一个接口所发送的数据并存储转发。只需要一个全局变量和一个局部变量即可实现,两者不相同则将数据赋值给全局变量,相同则不变。因此在这里整理了几种判断集合是否相同的方法。方法一:使用list中的containsAll方法此方法是判断list2是否是list的子集,即list2包含于list //方法一:使用list中的containsAll方法,此方法是判断list2是否是list的子集,即list2包含于list ...

2021-10-08 19:08:29 12845 3

原创 Java IO操作底层原理

10分钟看懂, Java NIO 底层原理 - 疯狂创客圈 - 博客园

2021-09-26 10:20:32 151

原创 tomcat运行war包时调用本地maven仓库

前段时间由于原来的服务器崩溃重新更换了一个新服务器里面的文件全部丢失了,需要重新部署服务,很正常的将这个mvc项目打包war包然后部署在远程服务器上的tomcat下运行。没想到里这个项目依赖了一个自己写的maven依赖包,放在D盘下指定的maven仓库中。当我打包在本地tomcat下运行的时候可以正常运行,一旦我放在远程运行的时候就报错找不到那个maven依赖包。我将本地D盘下的maven仓库中的依赖删掉以后也会报相同的错。 经过查找,发现在远程服务器的C盘下C:\User...

2021-09-18 17:36:28 290

原创 JDBC连接数据库常用的一些配置项

最近在服务器中部署服务遇到了一个连接超时的报错CommunicationsException,查找解决方法后发现可以通过配置JDBC重连来解决,添加“&autoReconnect=true&failOverReadOnly=false”配置在JDBC连接后面//配置自动重连 并且设置重连后只可读设为falseautoReconnect=true&failOverReadOnly=false还可以在JDBC连接中配置时区://北京时间东八区serv...

2021-09-17 14:31:28 1934

原创 免费查看并下载知网文献

由于最近需要写专利,需要查看大量的文献并引用,可是知网上面的文献都需要付费才能完整查看,一篇15元对于一个刚迈入社会的有志青年属实是生命无法承受之重。不由的怀念起上大学的时候可以使用校园账号免费查看知网文献。那么有没有办法可以既不花钱又可以免费查看并下载所需要的文献呢,答案是肯定的。首先,我们打开中国知网,在知网上搜索想要查看的文献,复制文献名称。然后,我们打开全全国图书馆参考咨询联盟,实名注册一个账号后,在输入框中输入你要搜索的文献名称,对应勾选文献的类...

2021-09-16 14:53:36 9879

原创 pom文件引入maven依赖实现低代码量导出excel

今天逛CSDN,发现有一位大神将他写的一个Excel工具包开源了,之前我也有写过一篇excel的导出文章,与这相比代码量实在是太多太冗余了。赶紧下下来实现一番。感谢大神的贡献:公司的报表工具太难用,我三天撸了个Excel工具,运营小姐姐直呼太好用了,现已开源!!(建议收藏)_冰河的专栏-CSDN博客下载完源码后,导入idea中编译i使用maven工具install,在本地maven仓库生成对应maven依赖包,用来给项目引入。导出Excel到本地...

2021-09-11 17:53:25 1807

原创 maven项目引入本地另一个maven项目的jar包,无法获取jar包中的方法

今天接手一个项目A,里面maven依赖引入了我们公司自己写的一个项目B,以为就是很正常的把那个项目使用maven的install方法打包一下到本地maven仓库中就可以实现,没想到一直报错,无法引入其中的方法。查看pom文件也没有报错,本地maven仓库和项目中也存在相对应的maven jar包,可就是一直报错。 仔细检查发现,项目B打的maven jar包和平常的项目打的jar包结构不太一样,猜测可能是由于打包方式不同导致包的结构不同,无法获取到指定的路径才报的错。...

2021-09-09 19:51:14 1354

原创 Java中Array、List、Map相互转换

引言: 在实际项目开发中或者一些算法面试题目中经常需要用到Java中这三种类型的相互转换,比如对于一个整型数组中寻找一个整数与所给的一个整数值相同,正常情况下第一反应会想到用for循环直接遍历这个数组就可以实现,不过这种情况下时间复杂度将会是O(n),空间复杂度是O(1)。如果再多加几个条件还使用多层for循环嵌套的话也可以实现,不过时间复杂度将会以指数级增长。我们可以说多层for循环嵌套可以实现功能,但就执行时间来说,它绝不会是一个好的解决方法。那么如何降低时间复杂度...

2021-09-06 17:59:44 7801 1

原创 spring boot项目中一些注解的使用

spring开发中使用了很多注解来减少我们的代码量,尤其是spring boot,有很多的注解可以帮助我们快速开发但是我们却闻所未闻,这篇文章主要用于记录以后在开发中遇到一些未曾使用过的注解。@PropertySource加载指定的属性文件(*.properties)到 Spring 的 Environment 中。其中encoding用于指定读取属性文件所使用的编码,我们通常使用的是UTF-8。没有该注释的情况下,SpringBoot启动时默认加载bootstrap.p...

2021-09-02 15:40:49 90

原创 编写bat文件双击运行本地jar包

作为程序员,我们经常编写Java项目打包成jar包部署在服务器上使用,对于没有服务器情况下只能放在本地电脑以运行jar包方法通过cmd命令行 jar -jar jar包名 来运行。 对于许多非专业人士,他们可能都不知道cmd命令行如何使用,他们只想简单快捷的启动项目。因此,我们可以编写一个简易的bat脚本,运行用户双击运行jar包项目。 在你的jar包目录下新建一个start.txt 的文本文件,将以下代码对...

2021-09-02 13:32:21 4117

原创 Spring Boot项目实现jar包外对配置文件的管理

还是今天那个从服务器拉取的项目在本地部署产生的问题,光是在本地部署运行就让我弥补了自己三个知识点的不足,这个项目属实了不得。在此之前,我一直以为spring boot项目通过package方式打包成jar包然后就可以放在服务器上部署运行了。事实上正常情况下也是可以运行成功的。不过我这个项目当时放在一个文件夹下面里面还有其他几个配置文件与文件夹与jar包同级,我当时直接把这个文件夹拉下来了,直接在这个文件夹下运行这个jar包。修改完jar包中的配置文件主要是MySQL的配置,解决了其他的问题后

2021-09-01 18:51:14 476

原创 MySQL报错:Unable to load authentication plugin ‘caching_sha2_password‘的解决方案

今天从服务器拉取一个项目jar包部署到本地运行,运行时候报了这个错误,上网查找一资料后解决,加上自己的实践与思考在此记录一下。问题原因:这是mysql 8.0版本才出现的问题,原因是mysql 8.0 默认使用 caching_sha2_password 身份验证机制 —— 从原来的 mysql_native_password 更改为 caching_sha2_password。所以一般这种报错由于本地的MySQL使用的是最新版8.0版本,而打包的项目使用的则是比较低的版本,可以解释说是版本冲突

2021-09-01 17:00:05 38078 23

原创 maven项目 package与install的区别

一直以来都使用的是package打包项目部署在服务器运行,未曾使用过install,今天同事问我这两个的区别把我给问住了,赶紧去查询了解一下,并做一下记录。package: 当我们使用package来打包项目的时候,就会在我们的项目中生成一个target文件夹,web项目比如mvc项目就会在该文件夹下生成一个war包,放在服务器中的tomcat/webapps目录里运行。Java项目的话就会在该文件夹下生成一个jar包,放在服务器中指定目录下使用“java -jar jar...

2021-09-01 16:40:26 20961 6

原创 Navicat创建数据库时所选择字符集和排序规则含义

我们每次使用Navicat创建数据库时候让选择字符集和排序规则,是不是会疑惑,知道要使用utf8字符集,但那个utf8mb4是个什么鬼?感觉和utf8差不多。创建时:创建后编辑:当我们使用utf8创建完数据库后编辑数据库时,会发现使用utf8创建的数据库字符集转变为utf8mb3,和utf8mb4更像了。MySQL在早期时候只有utf8,在5.5.3版本之后增加了这个utf8mb4的编码。mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。理论上utf.

2021-08-27 10:13:55 18302 3

原创 误删代码,回收站又被清空还没有备份教你如何解决

今天早上要部署项目了,没想到代码不小心给误删了,回收站也在清理垃圾的时候给清空了,当时我人都傻了。方法一:不过天无绝人之路,如果是idea运行项目的话,那么你右键项目——》Local History——》show History 点击进去就可以查看你的项目修改历史了。找到你误删代码之前的一个版本点击右上角的回退,就可以将误删的代码恢复回来了。如下图:方法二:如果整个项目都被误删idea中没有项目的话,这个时候就先不要重启电脑,千万不要重启电脑!!!window+r打开运行对话框,..

2021-08-26 16:20:54 4140

原创 Java中IO操作对于大文件的分割与合并

玩过英雄联盟这款游戏的人一定会发现,每次下载的时候,你的下载目录中都会有好多个安装包,当时的我尚未接触编程,只是内心觉得可能是由于一个安装包太大了毕竟一个安装包现在都7、8个G了,分成好几个小的可能会下的快而且方便暂停.最近写的一个项目有许多的文件操作包括上传,下载,将excel数据导入到数据库或者将数据库数据导出下载等等.这不免让我思考,万一我有一个很大很大的excel文件或者别的格式的文件需要上传,那么这种情况下就可以对文件进行分割存储最后使用的时候再合并成为一个文件就可以了.以下就是以本地的一个文

2021-08-24 15:47:02 407

原创 idea修改运行内存

很多小伙伴使用idea运行程序时候会发现idea很卡顿运行慢,今天我们就来把提高idea的运行速度右键桌面idea图标,进入idea的安装目录根据自己的计算机是多少位使用idea打开相对应的idea配置文件ideaxx.exe.vmoptions。idea默认的配置:-Xms128m-Xmx512m-XX:ReservedCodeCacheSize=240m-XX:+UseConcMarkSweepGC-XX:SoftRefLRUPolicyMSPerMB=50-

2021-08-18 09:27:24 550

原创 红黑树的原理和算法详解

参考文章:https://www.cnblogs.com/skywang12345/p/3245399.html

2021-08-17 16:43:39 65

原创 No Persistence provider for EntityManager named ***

最近负责一个前人写的运维系统的需求升级,用的MVC框架配置文件贼多不说,里面用的技术很老jbpm这种都已经快被淘汰掉的技术,连eclipe上的插件都不给下载了,使用的时候简直步履蹒跚。好不容易把需求搞完,和前端对接完接口,把项目上传到git上,没想到第二天启动服务时候就给我报了这个错误。No Persistence provider for EntityManager named org.jbpm.domain根据日志查找到错误来自于以下文件当时我就疑惑了,之前写代码阶段自己运行那么久.

2021-08-16 20:07:22 1054

原创 MVC框架下使用@Scheduled注解实现定时任务

之前转载过一篇使用Timer定时器完成定时任务,这次我们使用@Scheduled注解来实现定时更新数据库数据在Spring Boot项目中,由于使用注解替代了大量的配置文件,所以直接使用该注解即可。在MVC框架下,则需要配置一些数据。在spring的配置xml文件中添加以下内容xmlns中加入xmlns:task="http://www.springframework.org/schema/task"xsi:schemaLocation中加入http://www.spri..

2021-08-13 19:24:01 534

原创 Java过滤器的创建与使用

工作原理过滤器顾名思义,一个容器可以将一堆东西经过过滤筛选去除不想要的部分,保留想要的部分。就如同净水器一样,将水中的杂质过滤,保留纯净的饮用水。而Java中的过滤器是对web资源进行拦截,做一些处理后再交给下一个过滤器或servlet处理。通常都是用来拦截request进行处理的,也可以对返回的response进行拦截处理。创建过滤器创建过滤器类FilterTest实现javax.servlet.Filter,该接口主要有三个方法,doFilter()方法是业务处理的核心代码区,用来编写.

2021-08-09 18:39:27 1460

转载 Spring boot 是如何帮我们省去web.xml配置的

最开始使用原生的springmvc时,总是免不了有如下xml配置<!-- Spring MVC配置 --><!-- ====================================== --><servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.Dispatcher...

2021-08-09 15:04:51 1398

原创 IDEA创建类的时候添加作者和时间

作为一名程序员,要对自己写下的每一行代码负责,除了要有写注释的好习惯,更要在创建修改文件的时候标明创建人和时间,方便日后项目出问题时候能够更快的追根溯源。在IDEA中打开File——setting——Editor——File and Code Templates——Includes——File Header在其中添加作者名和时间/** * @author zhangqianwei * @date ${DATE} ${TIME} */创建一个类观察是否生效...

2021-08-09 11:54:22 6131 1

空空如也

空空如也

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

TA关注的人

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