示例Java代码把多个文件用zip格式压缩成ByteArrayOutputStream并存成文件: public static void main(String[] args) throws Exception { //压缩doc下所有的文件 File[] files = new File("/Users/Terry/Downloads/doc").listFiles(); assert files != null; ByteArrayOutputStream bos = zipFiles(files); File…

2021-07-01 0条评论 721点热度 0人点赞 admin 阅读全文

一般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-…

2021-06-30 0条评论 1177点热度 0人点赞 admin 阅读全文

老系统使用的是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 …

2021-06-27 0条评论 1550点热度 0人点赞 admin 阅读全文

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…

2021-06-24 0条评论 640点热度 0人点赞 admin 阅读全文

一般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配置文件来实现的: # 应用服务器对…

2021-06-22 0条评论 3981点热度 0人点赞 admin 阅读全文

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…

2021-06-13 0条评论 1272点热度 0人点赞 admin 阅读全文

在得到用户上传后的图片后,或者直接处理图片的时候,如果太大可能要进行缩放操作,或者要生成其他尺寸的图片。 下面整理了如何对图片进行缩放后者调整长宽的代码: BufferedImage src = ImageIO.read(new File("/path/to/image_file")); // 读入图片文件 int width = src.getWidth(); // 得到源图宽 int height = src.getHeight(); // 得到源图长 int newWidth = width / 2; int…

2021-06-05 0条评论 823点热度 0人点赞 admin 阅读全文

可能使用的时候没有注意,在做时间的解析和格式化的时候,写了一个全局的工具类或者把SimpleDateFormat的初始化,放在全局变量里面,导致在多线程或者高并发调用的时候,解析或者格式化出来的时间不正确或者直接报错的问题,刚开始查的时候,始终没看出来程序哪里的问题,简单的单元测试也正常,后来才发现是SimpleDateFormat线程不安全引起的! JDK的文档如下: Synchronization: Date formats are not synchronized. It is recommended to …

2021-06-03 0条评论 903点热度 0人点赞 admin 阅读全文

今天项目中需要用到一个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…

2021-05-17 0条评论 1619点热度 0人点赞 admin 阅读全文

最近一个项目中Java中用OKHttp/HttpsURLConnection请求一个https的API,出现如下报错: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 用Postman或者浏览器模拟请求,却是正常的,也不是网上查到的所谓的证书问题。 因为实在检查不出来什么原…

2021-05-12 0条评论 2691点热度 0人点赞 admin 阅读全文
1131415161720