
JAVA
文章平均质量分 51
奋斗鱼
一个人如果没有梦想,那跟咸鱼有什么区别
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
springmvc:tomcat启动无报错但接口404问题排查
在springmvc的项目种,启动了tomcat,控制台输出无异常报错。但调用API接口却全部都返回404的问题。deploy 选择war exploded文件,上下文目录即API访问目录,需确认与你的请求项目名一致。注意:1处若是红色,则点击编辑图标,可到里面选择具体项。1.确认tomcat的deploy设置与上下文正确。原创 2025-04-08 21:24:19 · 480 阅读 · 0 评论 -
JAVA:最简单多线程方法调用
在需要使用多线程方法的类中,新增线程类Thread并实现方法run。以下介绍在JAVA中,最简单调用多线程的方法。执行结果如下,可以看到两个线程在同时执行。原创 2024-12-27 09:11:03 · 227 阅读 · 0 评论 -
JAVA:通过电信ctg.ag.sdk从电信物联平台AIOT获取设备上报数据的简单示例
物联设备比如NB设备通过NB协议将数据传到电信平台后,我们的应用服务如何从电信平台获取可用的上报数据。以下通过电信开发者平台提供的SDK来简单演示下整个过程。电信AIOT物联平台提供了两种方式获取平台数据,一种是HTTP方式,一种事SDK方式。推荐使用SDK方式,因为HTTP方式调用时可能会遇到一些不通或不稳定的情况。电信平台提供了多种SDK,本示例使用JAVA SDK开发。电信平台提供了在线API调试,在开发程序前,可以先通过在线API来验证一下请求和响应的演示过程。原创 2024-06-09 23:15:55 · 1420 阅读 · 0 评论 -
JAVA:在IDEA引入本地jar包的方法并解决打包scope为system时发布无法打包进lib的方案
在项目根目录下新建lib文件夹,把本地jar包放到此目录下,并配置好对应的依赖项groupId、artifactId、version。点击菜单File->Project Structure->Modules->Dependencies,点击底栏的+号,选择JARS or Directories,在弹出的窗口中选中lib目录下的那个本地jar包,确定。步骤1.在pom.xml中添加插件设置,将system范围包含进来,此设置是为了在打包时,本地jar包自动生成到部署包里。(若无法打进包,请参考下文的方案二)原创 2024-06-09 21:28:21 · 2665 阅读 · 3 评论 -
JAVA:SpringBoot中使用websocket出现404问题
分析后发现,服务器环境与本地环境的主要区别是服务器上使用了nginx代理中转,需要进行以下配置,否则会报404错误。#超过7200秒内没通讯则断开。在Springboot中使用websocket时,本地开发环境可以正常运行,但部署到服务器环境出现404问题。#websocket 主要配置。配置完重启ngnix服务,运行正常了。原创 2023-09-25 09:03:24 · 2379 阅读 · 0 评论 -
JAVA:DBF文件读取与写入操作(使用dbf-jdbc)
使用工具包前,需要先在项目中导入dbschema-dbf-jdbc1.0.jar包,同时还有另外两个包h2-2.1.212.jar、javadbf-1.13.2.jar也一并导入。当你使用javadbf来写入该文件时,是无法用bytes类型写入该字段值或无法在新增记录行保留原bytes类型,这将可能导致你的硬件设备比如抄表机等无法正确识别读取该文件。但如果你生成的dbf文件包含了特殊字段,比如下图的字段“_NULLFLAGS”,字段类型是Bytes,此类型在javadbf工具包中是不支持的。原创 2022-09-02 19:11:11 · 2347 阅读 · 1 评论 -
JAVA:java.lang.NoSuchMethodError: org.apache.poi.util.IOUtils.copy异常
问题: 引用ExcelUtils的jar包,调用方法时出现“java.lang.NoSuchMethodError: org.apache.poi.util.IOUtils.copy”的异常提示。原因可能是项目中引入了多种版本的jar包导致。在调用的方法前,使用以下代码将引用jar的路径显示出来,可以确认项目使用的jar版本是否与自己pom.xml引用的是否一致。ClassLoader 也可以用于其他jar重复引用的定位问题。原创 2022-08-22 20:29:33 · 1963 阅读 · 0 评论 -
JAVA:获取(截取)指定最大长度字符串(中文占2位,英文数字符号占1位)
有时我们需要截取字符串前面指定长度的字数,而一般情况JAVA的字符串的中文和英文符号都是按字符个数计数,比如“hello博客123”,这里如果使用String的.lenght方法获取的字符串长度是10位。而经常遇到的场景是按字节长度计算,即中文要算2位,英文数字符号算1位,所以示例的字符串字节长度应为12位。以下是计算方法...原创 2022-07-08 13:52:21 · 2940 阅读 · 0 评论 -
pgsql:存储过程简单示例
以下介绍在navicat中如何创建pgsql的存储过程一、创建在左边菜单的函数-》新建函数,输入存储过程名字,会自动生成存储过程模板代码此时直接保存,并点击运行,可以看到存储过程可以正常执行,不过此时我们没有写任何执行内容,定义的输出类型是void,所以输出结果也是空的。执行结果:二、执行具体操作语句以上语句保存后重新打开设计函数时,会自动重构语句,设计工具会自动添加一些语句比如COST 100,不影响我们的原执行语句。以下添加入参和update语句,并把返回值修改为原创 2022-05-03 13:18:03 · 12175 阅读 · 0 评论 -
SpringMVC:使用注解@Scheduled实现定时任务
之前用过quartz的事件管理器来配置定时任务,需要在spring-mvc.xml里面进行配置,比较繁琐。用注解@Scheduled的方式就简单多了,以下介绍实现的过程。步骤一在你的spring-mvc.xml中添加两处引用,新增配置<task:annotation-driven />xmlns:task="http://www.springframework.org/schema/task"http://www.springframework.org/schema/原创 2022-03-09 10:51:08 · 3169 阅读 · 1 评论 -
Tomcat:JAVA_HOME should point to a JDK not a JRE解决
问题在用cmd命令的"service.bat install 服务名"安装tomcat时出现“JAVA_HOME should point to a JDK not a JRE”的提示。而在系统环境变量中我是确认JAVA_HOME正确配置到jdk目录了,依然出现这个安装异常。解决用文本编辑器打开安装目录下的service.bat文件,在文本中手动添加一行JAVA_HOME的路径,即可解决。set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_201原创 2022-01-19 18:50:42 · 11675 阅读 · 4 评论 -
Springboot:使用注解Scheduled创建定时任务
有时我们需要创建定时任务,自动执行指定的业务逻辑。在Springboot中最简单的方式是使用注解Scheduled来创建定时任务。以下介绍具体实现步骤。一、添加注解首先需要在方法类的声明部分,添加注解@EnableScheduling,并且将类声明为Service类,以便程序运行后自动加载该类。@Service@Configuration@EnableSchedulingpublic class SyncServImpl { private static Log log...原创 2021-11-30 17:10:50 · 437 阅读 · 0 评论 -
springboot:实现异步响应请求(解决前端请求超时的问题)
问题实际场景中会遇到请求业务处理流程耗时较长,比如长查询,远程调用等,主线程会被一直占用会影响其他请求的响应,导致服务端性能下降。同时,前端向服务器发送请求后等待响应的超时时间比较短(一般20s或30s),而实际执行可能超过1分钟。以下需要解决此问题。解决方案解决的方案分为以下两步骤1.服务端异步处理你需要将请求接口进行一些简单的改进。将返回值类型变更为Callable<T>类型,其中T可以为任意类型比如你原有的自定义返回类型。以下的new Callable方法,会新建一个线原创 2021-11-23 16:19:03 · 17333 阅读 · 1 评论 -
JAVA:如何读写txt文件,并解决中文乱码问题
读写文件的编码格式需要保持一致,否则可能会出现中文乱码问题。以下使用UTF-8编码方式写入和读取文件。1.写入txt文件//--------------写入文本-------------// String fpname="d:/txt/1.txt"; String vcontent=""; BufferedWriter bw=null; try { //自动创建目录原创 2021-09-04 10:56:37 · 10197 阅读 · 2 评论 -
SpringMvc:整合springfox-swagger2生成在线API文档
Springboot 集成swagger2 即springfox-swagger2的方法请参考https://blog.youkuaiyun.com/quan278905570/article/details/112486232下面介绍SpringMVC集成springfox-swagger2的方法步骤一:引入依赖包<!--SpringBoot整合Swagger-ui--> <dependency> <groupId>io.springfox</原创 2021-08-26 18:00:14 · 696 阅读 · 0 评论 -
SpringMVC:访问controller出现404错误
问题在SpringMVC中,访问controller方法出现404提示。已确认请求的地址正确,且Tomcat启动时没有报错。 // 测试 @RequestMapping("/test") public String test() { logger.debug("test ok."); return "jsp/test"; }解决方案因为这是从原网站复制过来后改名的项目,原网站访问是正常的,所以controller方法应该没有问题。问题出现在spring.xml配置文.原创 2021-08-26 13:54:37 · 6053 阅读 · 0 评论 -
JAVA:使用HttpURLConnection添加头部header信息并进行httpget请求
公用方法import java.net.HttpURLConnection;/** * HttpGet请求 * @param vurl:请求地址,map:{头部信息} * @return 返回消息 */ public static String httpGet(String vurl,HashMap<String, Object> map) { try { URL url = new URL(vur原创 2021-08-19 11:56:50 · 21665 阅读 · 0 评论 -
JAVA:jar运行内存占用过大
问题使用cmd命令执行jar包后,内存占用比较大,有时超过1G甚至2G。解决方案在执行命令时 后面添加xms 和xmx,比如把命令放到批处理bat文件里面可以这样写title 测试服务接口java -jar -Xms256m -Xmx512m myserv.jar添加后,重新运行,可以看到内存占用不到512M。...原创 2021-08-17 11:18:51 · 5083 阅读 · 0 评论 -
JAVA:日期时间范围查询0点到23点59分59秒之间
问题在做日期时间范围查询时,需要查询当天时间范围内的数据,如2021-01-05这天的所有记录,查询时间范围应该是“2021-01-05 00:00:00”至“2021-01-05 23:59:59”之间的数据,若数据库日期格式是timestamp则需要更精确到毫秒,如“2021-01-05 23:59:59.254”。此时已经不适用add_time>=“2021-01-05 00:00:00” andadd_time<=“2021-01-05 23:59:59”的where查询条.原创 2021-07-22 19:51:48 · 7169 阅读 · 0 评论 -
JAVA:Tomcat服务执行批量数据处理时出现Java.lang.OutOfMemoryError: Java heap space解决方法
问题在Tomcat服务中,有一段JAVA程序执行导入excel文件,里面有20+万条数据,读取过程中出现报错提示“Java.lang.OutOfMemoryError: Java heap space”。意思就是JVM堆内存空间不足,原因应该是过大数据加载到JAVA虚拟机的内存中,导致内存溢出了。解决方案1.修改JVM的内存配置参数在Tomcat目录下的/bin/catalina.bat最前面加入:set JAVA_OPTS=-Xms800m -Xmx800m或者在 echo原创 2021-07-16 14:24:04 · 3441 阅读 · 2 评论 -
SpringMVC:在SSM框架的Tomcat中启动Socket服务,并利用监听器Listener获取注入的bean
在上一篇讲到如何在Tomcat中正常启动Socket服务,现在服务可以正常启动了,但接下来调用Mybatis写库时发现遇到问题。问题:在使用自动注入bean的DAO时,提示空指针错误,说明对象没有实例化@Autowired(required = false)private BoxDectdata4DAO boxDectdata4DAO;原因:我们启动的Socket服务是创建了一个监听器类SocketListener,并且继承ServletContextListener,而Spri原创 2021-06-29 22:51:37 · 701 阅读 · 0 评论 -
Spring MVC:在Tomcat中启动Socket服务
1.新建一个监听类SocketListener,实现ServletContextListener 方法分别在初始化和销毁方法中创建Socket线程和中断线程。SocketThread 为线程类,用来执行具体业务。@Componentpublic class SocketListener implements ServletContextListener { private SocketThread socketThread; @Override public void contex原创 2021-06-22 23:48:06 · 1075 阅读 · 0 评论 -
Spring boot:启动时提示boot.devtools.restart.SilentExitExceptionHandler$SilentExitExce异常
问题IDEA中,启动Spring boot项目,控制台提示org.springframework.boot.devtools.restart.SilentExitExceptionHandler$SilentExitException的异常。org.springframework.boot.devtools.restart.SilentExitExceptionHandler$SilentExitException at org.springframework.boot.devtools....原创 2021-05-14 20:42:28 · 12379 阅读 · 0 评论 -
JAVA:post 提交Json对象请求的正确方法(Post请求时抛java.io.FileNotFoundException异常解决)
问题服务端Controller的入参用@RequestBody接收的Json对象,本地用Post请求访问服务端返回java.io.FileNotFoundException。确认url正确的情况下,这个异常说明的是入参方式不正确,无法匹配到正确请求地址,出现这种情况的原因很可能是请求参数和接收参数的类型不一致导致,而且注意需要将Post的Content-Type设置为"application/json"。以下介绍post 提交Json对象请求的正确方法,同时也解决以上出现的问题。解决方案原创 2021-04-27 21:04:35 · 4245 阅读 · 0 评论 -
Spring:前端入参json数组后端的接收并转换为HashMap
有时前端传递过来的Json不是对象类型,而是数组,如参数值内容为[{"rec_no":"001","user_name":"aaa"},{"rec_no":"002","user_name":"bbb"}]此时后端接收代码如下import net.sf.json.JSONArray;import net.sf.json.JSONObject;import ne...原创 2021-04-27 13:52:56 · 1995 阅读 · 0 评论 -
JAVA:spring配置自动扫描装载单个或多个包<context:component-scan base-package=””/>
base-package属性,指定扫描的包,配置扫描多个包,可以通过“,”逗号隔开;use-default-filters属性是使用默认过滤器,默认值为true,首先通过exclude-filter 进行黑名单过滤;然后通过include-filter 进行白名单过滤;否则默认选中扫描。(true则会对除了黑名单外进行扫描管理,false则不使用默认过滤器)context:include-filter指定扫面的注解,context:exclude-filter指定排除的注解;一个配置...原创 2021-04-25 09:44:36 · 5856 阅读 · 1 评论 -
JAVA:SpringMVC配置全局日期转换器(conversion-service配置方法无效)的问题解决
在SpringMVC中后端传递给前端时,日期类型默认是时间戳,需要进行转换。最简单的方式是设置一个全局日期转换器。网上方法一使用conversion-service配置方法,但调试时发现无效,具体原因问题还需后续确认。后来用方法二解决了。方法一:conversion-service配置方法1.添加全局类型转换器DateConverter.javaimport org.springframework.core.convert.converter.Converter;import jav原创 2021-02-18 11:58:36 · 2069 阅读 · 1 评论 -
数据库更新锁:使用种子表获取自增流水号时,避免高并发访问种子字段引起获取到重复流水号的问题
获取流水号的方式在数据库应用开发中,比如订单业务中,需要使用到流水号,即每次获取自增一次后的值。一般有两种方式,1.获取订单表中当前最大值加1,此方式每次都需要MAX流水号,大数据表时效率不高,不推荐使用。2.创建种子表,将流水号字段放到该表中,每次获取表中的字段值,加1得到新的流水号,再把新值更新回表中,提供给下一次生成使用。方法2相对方法1更推荐使用。数据表效果如下:问题使用种子表方式是先获取字段值再加1,如果高并发情况下,可能会遇到获取到的值是另一个线程已经获取到但原创 2021-02-05 21:37:52 · 751 阅读 · 1 评论 -
SpringBoot:事务使用与回滚处理的简单示例与总结
在java中事务的使用在多表关联操作的业务处理中必不可少的。注解式事务是使用最简单方便的,也是比较推荐的方式。下面介绍在SpringBoot中注解式事务的使用示例。1.添加事务注解和事务的使用范围 @Transactional public boolean updateInfo(HashMap<String, Object> map) { boolean flag=false; try { //update表A.原创 2021-02-05 11:13:25 · 2212 阅读 · 0 评论 -
Spring:异常提示ASM ClassReader failed to parse class file***Java class file version that isn‘t supported
问题Springmvc 编译运行时出现如下异常Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [D:\***.class]; nested exception is org.springframework.core.NestedIOException: ASM ClassReader failed to原创 2021-02-03 17:15:53 · 1743 阅读 · 1 评论 -
Swagger:JAVA 前后端调试利器,接口文档自动生成工具的简单使用示例
1.关于SwaggerSwagger可以根据JAVA的接口代码,自动生成html浏览页面,极大的方便了前端开发人员调用后端接口,还能根据代码的更新而自动更新,大大减少了手动编写整理接口文档的时间精力和后期维护工作量。接口文档预览界面...原创 2021-01-11 20:08:04 · 1791 阅读 · 0 评论 -
JAVAdbf:DBF文件读取与写入操作
使用JAVAdbf对DBF文件读取与写入操作。1.引入依赖,加载javadbf-0.4.0.jar在pom.xml文件加入依赖 <!-- 读写dbf文件--> <dependency> <groupId>com.linuxense</groupId> <artifactId>javadbf</artifactId> .原创 2021-01-09 11:45:28 · 5290 阅读 · 0 评论 -
JAVA:连续多次生成文件或写入文件时引起后台服务异常,报错java.lang.NullPointException
问题:遇到这样的情况,调试很久才解决。在在IDEA开发环境中,前一两次执行生成文件或写入文件都正常,但连续多次执行,会发生服务异常,甚至报空指针错误java.lang.NullPointException,并导致其他接口也出现访问异常情况。原因:开发环境下,因为把生成的文件默认放在target的class文件夹下,第一次生成文件时,发现服务就出现重新刷新加载的情况,虽然这次执行正常,但后续几次执行,就出问题了。原因可能因为是IDE的运行环境下,IDEA或Eclipse会检查target下原创 2020-12-30 14:05:04 · 892 阅读 · 2 评论 -
JAVA:货币金额类型、精确小数类型数值的定义BigDecimal和基本运算操作
1.精确小数类型需要用BigDecimal类型在JAVA中有8种基本数据类型(boolean, byte, short, int, long, float, double, char),其中float和double都是浮点型,但平常我们需要表示货币金额或小数类型的数值时,不能用这两种类型,因为浮点型的精确范围是不适用于日常的精确小数计算。我们需要使用的类型是java.math.BigDecimal类型。2.创建对象使用BigDecimal(String val)的构造方法创建对象如Big原创 2020-12-09 15:57:38 · 6390 阅读 · 0 评论 -
SpringBoot:将web项目生成war包部署到Tomcat服务
SpringBoot在Install后默认生成的是jar包,然后在JAVA命令行中通过java -a 项目.jar 的方式来运行项目。但这种方式方便本地开发环境的调试,在生产环境中并不方便,因为web项目每次更新不可能都全站覆盖更新,不利于网站稳定性,还有附件目录、生产配置等是不能被覆盖的。解决方案是像以前springmvc项目那也发布成war包方式(文件夹的目录形式),以后每次只要更新变动的文件即可,不会影响网站和服务的正常运行。Springboot 发布成war包形式,需经过以下步骤。1原创 2020-12-07 14:28:15 · 194 阅读 · 0 评论 -
SpringBoot:ERROR: column “***“ is of type numeric but expression is of type character varying
问题SpringBoot:在postgresql数据库提交数据时,出现ERROR: column "***" is of type numeric but expression is of type character varying.You will need to rewrite or cast the expression.的错误提示。原因是某个字段在JAVA代码中提交的是字符串类型,但pg数据库里面该字段是int类型,导致要求转换数据类型的异常提示。解决在数据库连接配置中加上?str原创 2020-12-03 19:49:09 · 25861 阅读 · 4 评论 -
Springboot:返回给前端json格式中日期类型时间戳转日期时间格式的问题处理
在Springboot框架中,后端controller返回给前端日期类型变成了时间戳,需要转为日期时间。在config的WebMvcConfigurer配置如下@Configurationpublic class WebAppConfigurer implements WebMvcConfigurer { public HttpMessageConverter<String> stringConverter() { StringHttpMessageCon原创 2020-12-03 19:27:19 · 4530 阅读 · 0 评论 -
org.apache.http 在Maven中引入依耐包提示不存在的问题
引入包pom地址为以下3个 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5</version> </dependency> &原创 2020-11-10 21:16:23 · 9388 阅读 · 0 评论 -
JAVA:springMVC附件上传下载功能
在JAVA的SpringMVC架构下,实现附件上传下载功能1.附件上传UploadFileController 文件/** * 添加附件 */ @RequestMapping(value = "/upload", method = RequestMethod.POST) @ResponseBody public void upload(@RequestParam HashMap<String, String> map, @RequestParam(value =原创 2020-10-23 15:38:07 · 1229 阅读 · 0 评论 -
SpringMVC:返回的json中日期类型在前端显示的是时间戳格式的问题解决
问题:springMVC 返回的json串结果中包含的日期类型,传递给前端时,前端显示的是时间戳格式。这时应该使用xml全局配置,将格式自动转换。解决:在dispatcher-servlet.xml或applicationContext.xml配置文件中添加以下内容,spring会自动将格式转换后返回给前端。<!-- 定义注解驱动Controller方法处理适配器 ,注:该适配器必须声明在<mvc:annotation-driven />之前,否则不能正常处理参.原创 2020-10-20 16:19:42 · 1163 阅读 · 0 评论