maven的scope参数
1、用maven引用没进中央仓库的包
在使用maven的时候,如果我们要依赖一个本地的jar包的时候,通常都会使用<scope>system</scope>和<systemPath></systemPath>来处理。
例如:
|
|
如果你仅仅是这么做了,在你使用SpringBoot打包插件生成jar包的时候,你会发现这个jar包不会被打进去,进而出现错误。
这个就需要在maven插接中配置一个includeSystemScope属性:
一位Java开发者,喜欢研究技术,同时也在学习Golang和Python中,对服务器、Linux使用比较熟悉。欢迎添加技术交流QQ群:655158296
在使用maven的时候,如果我们要依赖一个本地的jar包的时候,通常都会使用<scope>system</scope>和<systemPath></systemPath>来处理。
例如:
|
|
如果你仅仅是这么做了,在你使用SpringBoot打包插件生成jar包的时候,你会发现这个jar包不会被打进去,进而出现错误。
这个就需要在maven插接中配置一个includeSystemScope属性:
内部系统要上 https,当时没有 CA 签发的证书,就用 keytool 做了自签名证书给 tomcat 配上。流程整理下,最后补上新版 JDK/tomcat 的差异说明——老环境照旧,新环境看最后一段。
JDK 1.4 以后都自带 keytool,在 <JAVA_HOME>\bin 下:
|
|
参数说明:
-alias:证书别名,之后引用都用它-keyalg:密钥算法,RSA-keystore:keystore 文件的存放位置命令会交互式问一串信息,其中**「名字与姓氏」必须填域名**(比如 www.example.com),这是最容易踩的坑——填成自己的姓名,之后运行时证书的域名和实际访问的域名对不上,浏览器照样报证书警告。密码我输的是 tomcat(测试环境),其余按实际情况填。
……一台应用的第三方服务器的kafka只有3个分区,测试一直存在积压的消息,搭建了一套最简单集群测试下,记录中间的参数。
| 环境 | 版本 | 说明 |
|---|---|---|
| centos | 7.0 | 操作系统服务器,3台 |
| JDK | 1.8.261 | 安装好jdk并设置好环境变量 |
| zookeeper | 3.4.9 | zk官方安装包 |
| kafka | 2.2.0_2.12 | kafka官方安装包 |
| IP | 端口 | 说明 |
|---|---|---|
| 192.168.211.125 | zk:2181 zk heartbeat:2888、3888 kafka:9092 |
zk默认端口 zk心跳默认端口 kafka默认监听端口 |
| 192.168.211.126 | zk:2181 zk heartbeat:2888、3888 kafka:9092 |
zk默认端口 zk心跳默认端口 kafka默认监听端口 |
| 192.168.211.127 | zk:2181 zk heartbeat:2888、3888 kafka:9092 |
zk默认端口 zk心跳默认端口 kafka默认监听端口 |
| 中间件 | 安装目录 | 数据目录 | 日志目录 | 说明 |
|---|---|---|---|---|
| jdk | /home/jdk_version | - | - | Oracle jdk是直接tgz解压的,只需要安装目录 openjdk不需要这个目录规划 |
| zk | /home/zookeeper_version | /opt/data/zookeeper | /opt/data/zookeeper/zkdata /opt/data/zookeeper/zklogs |
zkdata是zk的数据目录,zklogs是日志目录 |
| kafka | /home/kafaka_version | /opt/data/kafka | /opt/data/kafka/kafka_logs | kafka_logs是日志目录 |
官网:https://archive.apache.org/dist/zookeeper/zookeeper-3.4.9/
下载地址:https://archive.apache.org/dist/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
2020年9月份打造好了termux,但是苦于jdk没法安装,只能简单的用ecj(eclipse的java,类似jdk的javac),但是springboot或者tomcat的项目怎么跑啊? 今天为了做培训演示,找到了termux下的openJDK资源,记录下安装的经过。termux的安装和工具准备参考前一篇android下安装termux模拟器-超便携linux
……加解密是业务开发绕不开的需求,手机号、身份证、银行卡等敏感字段落库加密基本都是对称加密。这篇整理对称加密的原理和 DES、3DES、AES 三种算法的 Java 实现。
对称密码算法是当今应用范围最广、使用频率最高的加密算法,不仅应用于软件行业,在硬件行业同样流行,各种基础设施凡是涉及到安全需求都会优先考虑对称加密算法。
……生产环境中 tomcat 的 JVM 和线程池设置不好,很容易出现内存溢出或被流量打垮。这篇整理 tomcat 的三块核心配置:JVM 内存参数(catalina.sh)、线程池(server.xml)、JNDI 数据源(context.xml),以及常见内存溢出的原因和解决方法。
|
|
JVM 启动时会自动设置 Heap 的值:初始空间(-Xms)是物理内存的 1/64,最大空间(-Xmx)不可超过物理内存。Heap 的大小是 Young Generation 和 Tenured Generation 之和。在 JVM 中如果 98% 的时间用于 GC 且可用的 Heap size 不足 2%,将抛出此异常。
测试环境的问题在本地复现不出来,最直接的办法就是远程 debug:本地 IDEA 打断点,连到测试环境的 tomcat 上单步跟。配置很简单,给 catalina 加一段 JDWP 参数就行,但有个 shutdown.sh 失效的坑要提前知道。
linux 下在 catalina.sh 开头(或者按规范放 bin/setenv.sh)加:
|
|
windows 下修改 catalina.bat:
|
|
参数含义:
……表单重复提交是老问题:用户手快点了两下提交、网络卡顿刷新重发,数据就插了两条。最常见的解法是提交完成后 redirect 跳转,但它解决不了 ajax 提交和移动端提交的场景(没有页面可跳)。通行的做法是用 token:django 等框架内置了这套机制,SpringMVC 需要自己搭,这篇把完整实现整理出来(思路参考了网上的经典方案,见文末参考)。
……springboot利用devtools实现热部署
|
|
设置WEB-INF下的jsp修改不需要重启。
|
|
|
|
1、File-Settings-Compiler-Build Project automatically
2、ctrl + shift + alt + /,选择Registry,勾上 Compiler autoMake allow when app running
好好运行的系统,突然故障,无意间根据错误信息查找,竟然是jdk的bug,描述下曲折的定位过程。
有个老系统有使用到soap接口,采用CXF结合接口文件wsdl自动生成的接口开发的,突然在3月2日(后续日志定位才发现真正故障的时间)无法正常工作,但是实际发现时间已经到了3月6日了,直接查看日志文件,报错“组装saop报文头异常:Entity References are not allowed in SOAP documents”
……