一般SpringBoot打包后生成的是jar包,且自带了tomcat运行环境,是可以直接用java -jar app-0.0.1-SNAPSHOT.jar运行的,不过如果要让它跑在Tomcat下呢? Tomcat下运行的话,是需要war包,所以需要告诉pom是需要打包成war包,且不需要把tomcat运行环境导入war包。 需要修改pom.xml 修改<packaging>war</packaging>,告诉pom打成war包(否则会打包成jar包) spring-boot-starter-…
一般SpringBoot打包后生成的是jar包,且自带了tomcat运行环境,是可以直接用java -jar app-0.0.1-SNAPSHOT.jar运行的,不过如果要让它跑在Tomcat下呢? Tomcat下运行的话,是需要war包,所以需要告诉pom是需要打包成war包,且不需要把tomcat运行环境导入war包。 需要修改pom.xml 修改<packaging>war</packaging>,告诉pom打成war包(否则会打包成jar包) spring-boot-starter-…
老系统使用的是Spring2.5.5,准备把老系统换到新的服务器上,安装好了新版的JDK11,却发现无法启动tomcat,查看tomcat/logs/catalina.out的日志: Unexpected exception parsing XML document from class path resource [applicationContext-dao.xml]; nested exception is java.lang.IllegalStateException: Context namespace …
SpringBoot默认采用的应用服务器是Tomcat,如果要换成Jetty,可以在pom.xml 如下设置: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0…
一般Tomcat或者Nginx都可能要根据应用不同的情况,来设置请求的超时时间,详见:https://blog.terrynow.com/2021/05/28/nginx-tomcat-request-timeout-increase-avoid-504-gateway-timeout-or-client-abort-exception/ 如果时SpringBoot打包成的jar,是自带Tomcat或者Jetty这些应用服务器的,是通过application.properties配置文件来实现的: # 应用服务器对…
Java设置Linux下的文件权限,相当于Linux的命令:chmod 755 /path/to/file 有两种方式 chmod 666 /path/to/file,Java下调用外部命令的详见: https://blog.terrynow.com/2020/12/28/java-exec-linux-command/ public static void setPermission(File file) { Path path = file.toPath(); try { Set<PosixFilePer…
在得到用户上传后的图片后,或者直接处理图片的时候,如果太大可能要进行缩放操作,或者要生成其他尺寸的图片。 下面整理了如何对图片进行缩放后者调整长宽的代码: BufferedImage src = ImageIO.read(new File("/path/to/image_file")); // 读入图片文件 int width = src.getWidth(); // 得到源图宽 int height = src.getHeight(); // 得到源图长 int newWidth = width / 2; int…
可能使用的时候没有注意,在做时间的解析和格式化的时候,写了一个全局的工具类或者把SimpleDateFormat的初始化,放在全局变量里面,导致在多线程或者高并发调用的时候,解析或者格式化出来的时间不正确或者直接报错的问题,刚开始查的时候,始终没看出来程序哪里的问题,简单的单元测试也正常,后来才发现是SimpleDateFormat线程不安全引起的! JDK的文档如下: Synchronization: Date formats are not synchronized. It is recommended to …
今天项目中需要用到一个JSON的依赖包(json-lib) 虽然根据https://mvnrepository.com/artifact/net.sf.json-lib/json-lib/2.4查到pom应该这样导入: <!-- https://mvnrepository.com/artifact/net.sf.json-lib/json-lib --> <dependency> <groupId>net.sf.json-lib</groupId> <artif…
最近一个项目中Java中用OKHttp/HttpsURLConnection请求一个https的API,出现如下报错: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 用Postman或者浏览器模拟请求,却是正常的,也不是网上查到的所谓的证书问题。 因为实在检查不出来什么原…
有时候,我们需要用Java开发一个小的程序,或者只需要实现简单的http监听的server,此时并不想引入太多依赖(比如Spring或者要使用Tomcat等),此时可以使用Java自带的HttpServer来实现简单的web服务器,实现一些基本功能还是没有问题的。 下面分享下代码片段实现HttpServer,代码实现了以下几个功能和要点(详见代码注释): 实现web server(GET方法): http://127.0.0.1:8182/hello 如果GET携带参数 http://127.0.0.1:8182/…