Java 中如何实现动态生成证书,像 Go 那样。
比如 go
```go
func main() {
ln, _ := tls.Listen("tcp", ":433", &tls.Config{
GetCertificate: func(info *tls.ClientHelloInfo) (*tls.Certificate, error) {
// 使用 info.ServerName 从 DB 或者临时生成
cert := generateX509Certificate(info.ServerName)
return cert, nil
},
})
http.ServeTLS(ln, nil, "", "")
}
```
Java 有类似的机制吗。哪怕是并发请求,也可以控制只有一个请求触发生成证书,其他请求 hold 住,等证书一旦生成成功,所有请求立刻进行接下来的握手(超时的不算)
Java 中不同的框架处理方式一样吗?
#tls #info #请求 #go #func #ln #ServerName #cert #nil #Java
比如 go
```go
func main() {
ln, _ := tls.Listen("tcp", ":433", &tls.Config{
GetCertificate: func(info *tls.ClientHelloInfo) (*tls.Certificate, error) {
// 使用 info.ServerName 从 DB 或者临时生成
cert := generateX509Certificate(info.ServerName)
return cert, nil
},
})
http.ServeTLS(ln, nil, "", "")
}
```
Java 有类似的机制吗。哪怕是并发请求,也可以控制只有一个请求触发生成证书,其他请求 hold 住,等证书一旦生成成功,所有请求立刻进行接下来的握手(超时的不算)
Java 中不同的框架处理方式一样吗?
#tls #info #请求 #go #func #ln #ServerName #cert #nil #Java
萌新求教 Java 转码问题
现在有一个导出文本文件后,文本文件能用 GBK 编码打开的需求,但是原来的代码是这样的
```java
InputStream inputStream = minioUtil.getObject(minioConfig.getBucketName(), fileVersion.getFsId());
```
然后设置响应体的文件类型和响应头
```java
response.setContentType(contentType);
response.setHeader("Content-Disposition", "attachment;filename=\"" + fileName + "\"");
response.setHeader("Content-Length", "" + length);
response.setHeader("fileName", "" + fileName);
```
然后通过这个工具类去把 inputstream 流到 outputstream
```java
IOUtils.copy(inputStream, outputStream);
```
我的想法一开始是用
```java
Reader r = new InputStreamReader(inputStream,"utf-8");
BufferedReader br = new BufferedReader(r);
Writer w = new OutputStreamWriter(outputStream,"GBK");
BufferedWriter bw = new BufferedWriter(w);
String s = null;
while((s= br.readLine())!=null){
bw.write(s);
}
br.close();
bw.close();
```
发现导出不了,发送的请求是 pending ,然后过了两分钟响应 200 ,弹不出文件保存框。
然后尝试用这个
```java
byte[] buffer = new byte[8192];
int n;
byte[] dest = new byte[8192];
while(-1 != (n = inputStream.read(buffer))) {
dest=new String(buffer,0,n,"UTF-8").getBytes("GBK");
outputStream.write(dest);
}
```
也失败,发送请求 pending ,响应是 504 Gateway Time-out nginx ,弹不出文件保存框。
#new #java #inputStream #response #byte #GBK #setHeader #fileName #outputStream #br
现在有一个导出文本文件后,文本文件能用 GBK 编码打开的需求,但是原来的代码是这样的
```java
InputStream inputStream = minioUtil.getObject(minioConfig.getBucketName(), fileVersion.getFsId());
```
然后设置响应体的文件类型和响应头
```java
response.setContentType(contentType);
response.setHeader("Content-Disposition", "attachment;filename=\"" + fileName + "\"");
response.setHeader("Content-Length", "" + length);
response.setHeader("fileName", "" + fileName);
```
然后通过这个工具类去把 inputstream 流到 outputstream
```java
IOUtils.copy(inputStream, outputStream);
```
我的想法一开始是用
```java
Reader r = new InputStreamReader(inputStream,"utf-8");
BufferedReader br = new BufferedReader(r);
Writer w = new OutputStreamWriter(outputStream,"GBK");
BufferedWriter bw = new BufferedWriter(w);
String s = null;
while((s= br.readLine())!=null){
bw.write(s);
}
br.close();
bw.close();
```
发现导出不了,发送的请求是 pending ,然后过了两分钟响应 200 ,弹不出文件保存框。
然后尝试用这个
```java
byte[] buffer = new byte[8192];
int n;
byte[] dest = new byte[8192];
while(-1 != (n = inputStream.read(buffer))) {
dest=new String(buffer,0,n,"UTF-8").getBytes("GBK");
outputStream.write(dest);
}
```
也失败,发送请求 pending ,响应是 504 Gateway Time-out nginx ,弹不出文件保存框。
#new #java #inputStream #response #byte #GBK #setHeader #fileName #outputStream #br
求助,大家觉得开发转设计怎么样呢
### 说一下自己本来的情况吧
本人现在在甘肃兰州做软件开发,因为是独生子而去父母在兰州,估计不太会在去外地了
现在在银行外包里面做 Java(虽然我来公司后就一直写前端和小程序,快半年没碰 Java 代码了)
自己的学历也不怎么高,是一个大专学历
自己现在已经 27 了,现在特别害怕自己 35 岁之后找不到工作
而开发方面,觉得自己做一下 curd 还好,让我在看一下更深的方面,比如算法,编译原理着这方面,自己实在有些看不进去,感觉把开发更上一层楼是不太可能了
我看着我们公司设计年纪大的人挺多的,而且觉得 PS 变化也不太大,不太像开发一样这么需要持续不断的学习,而且不去互联网公司,一些其他公司还是需要设计的
像我们西北地区,工资本来就普遍不高,开发和设计工资不会差太大
而且会设计后我以后接私活更方便了,基本自己可以从头干到尾了
所以想问一下转设计怎么样.35 岁之后万一被裁员后,找工作会比开发好些吗
#设计 #开发 #自己 #Java #35 #一下 #学历 #现在 #公司 #而且
### 说一下自己本来的情况吧
本人现在在甘肃兰州做软件开发,因为是独生子而去父母在兰州,估计不太会在去外地了
现在在银行外包里面做 Java(虽然我来公司后就一直写前端和小程序,快半年没碰 Java 代码了)
自己的学历也不怎么高,是一个大专学历
自己现在已经 27 了,现在特别害怕自己 35 岁之后找不到工作
而开发方面,觉得自己做一下 curd 还好,让我在看一下更深的方面,比如算法,编译原理着这方面,自己实在有些看不进去,感觉把开发更上一层楼是不太可能了
我看着我们公司设计年纪大的人挺多的,而且觉得 PS 变化也不太大,不太像开发一样这么需要持续不断的学习,而且不去互联网公司,一些其他公司还是需要设计的
像我们西北地区,工资本来就普遍不高,开发和设计工资不会差太大
而且会设计后我以后接私活更方便了,基本自己可以从头干到尾了
所以想问一下转设计怎么样.35 岁之后万一被裁员后,找工作会比开发好些吗
#设计 #开发 #自己 #Java #35 #一下 #学历 #现在 #公司 #而且
[远程][兼职]寻求一份兼职工作
技能:5 年 JAVA-WEB 开发经验,主技能是 java ,前端 vue 、react 、angularJS 都写过一点,基本的需求开发与日常维护没有问题~
期望的工作内容:JAVA 或前端相关项目的需求开发与日常维护~
钱的问题:不懂行情,此前我也无兼职经验,所以接受兼职试用,如果满足您的要求,再谈价格和计划,毕竟兼职也是双向选择~
PS:目前人在成都已离职,年后再考虑入职,想找一份兼职工作长期干下去,计划是年后找一个不加班的工作,所以工作后可以利用业余时间长期兼职,因此在找到合适的兼职前此贴长期有效~
联系方式: ZXRoYW4xODExMTA=
#兼职 #JAVA #工作 #开发 #技能 #前端 #日常 #双向选择 #维护 #WEB
技能:5 年 JAVA-WEB 开发经验,主技能是 java ,前端 vue 、react 、angularJS 都写过一点,基本的需求开发与日常维护没有问题~
期望的工作内容:JAVA 或前端相关项目的需求开发与日常维护~
钱的问题:不懂行情,此前我也无兼职经验,所以接受兼职试用,如果满足您的要求,再谈价格和计划,毕竟兼职也是双向选择~
PS:目前人在成都已离职,年后再考虑入职,想找一份兼职工作长期干下去,计划是年后找一个不加班的工作,所以工作后可以利用业余时间长期兼职,因此在找到合适的兼职前此贴长期有效~
联系方式: ZXRoYW4xODExMTA=
#兼职 #JAVA #工作 #开发 #技能 #前端 #日常 #双向选择 #维护 #WEB
[ Java 后端工程师] [全职,海外远程 ] [WFH]
Salary : 4000USDT UP
工作內容
1. 负责大型网站后端服务的开发、设计与维护
2. 了解使用者需求,并进行相关分析与设计
3. 负责内外部平台的功能界接及整合、程式撰写、测试修改、后续修订
4. 跨国团队合作,提供专业的技术建议
岗位要求
1. 资讯电脑或相关理工科系大学或以上
2. 擅长工具: #git 、#java 、#springcloud 、#mysql 、#redis 、#kafka 、#mongoDB
3. 具备 5 年以上的软体开发经验
4. 架构及模组分析设计经验
5. 熟悉云端开发语言 Java 、springcloud 、golang
6. 在工作中具有主动性,具备快速开发效率,并勇于承担任务与团队合作精神
vx : Sam_869
Salary : 4000USDT UP
工作內容
1. 负责大型网站后端服务的开发、设计与维护
2. 了解使用者需求,并进行相关分析与设计
3. 负责内外部平台的功能界接及整合、程式撰写、测试修改、后续修订
4. 跨国团队合作,提供专业的技术建议
岗位要求
1. 资讯电脑或相关理工科系大学或以上
2. 擅长工具: #git 、#java 、#springcloud 、#mysql 、#redis 、#kafka 、#mongoDB
3. 具备 5 年以上的软体开发经验
4. 架构及模组分析设计经验
5. 熟悉云端开发语言 Java 、springcloud 、golang
6. 在工作中具有主动性,具备快速开发效率,并勇于承担任务与团队合作精神
vx : Sam_869
用 cursor 写了一个 jvm-mcp,可以快速排查 jvm 问题
# JVM-MCP: 让 Java 问题排查不再头疼的小工具
各位 Java 开发的兄弟姐妹们,有没有被线上问题排查搞得焦头烂额?
我把阿尔萨斯(Arthas)这个神器封装了一下,使用 mcp 封装了一下,可以使用 cursor/windsurf 来直接导入,ai 自动排查线上问题,定位代码。
## 🔥 这玩意能干啥?
- **一键查日志**:不用再手动连服务器 tail/grep
- **查内存泄漏**:哪个对象太多没释放,一目了然
- **找 CPU 杀手**:哪个线程 CPU 爆了,立马定位
- **看线程堆栈**:死锁、阻塞统统现形
- **改日志级别**:线上问题排查临时改个日志级别,不用重启应用
- **反编译代码**:线上运行的代码到底是啥样,一看便知
## 👍 有啥好处?
- **省时间**:不用手动敲一堆 Arthas 命令,不用查文档
- **远程排查**:不用登服务器,本地就能连上远程 JVM
- **降门槛**:实习生也能快速上手排查问题
## 📦 开源地址
- **GitHub**: [https://github.com/xzq-xu/jvm-mcp-server]( https://github.com/xzq-xu/jvm-mcp-server)
- **许可证**: MIT
## 🙏 一起搞事情
欢迎各位大佬试用并提建议。有问题提 Issue ,有想法提 PR ,一起把它变得更好用!
---
#Java #Arthas #问题排查 #开源工具 #程序员加班减少器
# JVM-MCP: 让 Java 问题排查不再头疼的小工具
各位 Java 开发的兄弟姐妹们,有没有被线上问题排查搞得焦头烂额?
我把阿尔萨斯(Arthas)这个神器封装了一下,使用 mcp 封装了一下,可以使用 cursor/windsurf 来直接导入,ai 自动排查线上问题,定位代码。
## 🔥 这玩意能干啥?
- **一键查日志**:不用再手动连服务器 tail/grep
- **查内存泄漏**:哪个对象太多没释放,一目了然
- **找 CPU 杀手**:哪个线程 CPU 爆了,立马定位
- **看线程堆栈**:死锁、阻塞统统现形
- **改日志级别**:线上问题排查临时改个日志级别,不用重启应用
- **反编译代码**:线上运行的代码到底是啥样,一看便知
## 👍 有啥好处?
- **省时间**:不用手动敲一堆 Arthas 命令,不用查文档
- **远程排查**:不用登服务器,本地就能连上远程 JVM
- **降门槛**:实习生也能快速上手排查问题
## 📦 开源地址
- **GitHub**: [https://github.com/xzq-xu/jvm-mcp-server]( https://github.com/xzq-xu/jvm-mcp-server)
- **许可证**: MIT
## 🙏 一起搞事情
欢迎各位大佬试用并提建议。有问题提 Issue ,有想法提 PR ,一起把它变得更好用!
---
#Java #Arthas #问题排查 #开源工具 #程序员加班减少器
V 友们, Flutter 编译报错可能是什么原因
### 服务器版本、环境版本如下:
### 执行完命令:flutter build apk
### 报错如下:
### 服务器版本、环境版本如下:
java version "21.0.7" 2025-04-15 LTS
Java(TM) SE Runtime Environment (build 21.0.7+8-LTS-245)
Java HotSpot(TM) 64-Bit Server VM (build 21.0.7+8-LTS-245, mixed mode, sharing)
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 3.29.3, on Microsoft Windows [版本 10.0.19041.264], locale zh-CN)
[√] Windows Version (10 专业版 64 位, 2004)
[√] Android toolchain - develop for Android devices (Android SDK version 35.0.1)
[√] Chrome - develop for the web
[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.8.3)
[√] Android Studio (version 2024.3)
[√] VS Code (version 1.99.3)
[√] Connected device (3 available)
[√] Network resources
### 执行完命令:flutter build apk
### 报错如下:
FAILURE: Build failed with an exception.
* What went wrong:
Could not open cp_settings generic class cache for settings file 'C:\jk-katalon\workspace\XXXX\XXXX-app\android\settings.gradle' (C:\Users\cs\.gradle\caches\8.0\scripts\8ju52g7d2hqvl85b219kdzjzv).
> BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 65
* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 8s
Running Gradle task 'assembleRelease'... 9.3s
┌─ Flutter Fix ───────────────────────────────────────────────────────────────────────────────────┐
│ [!] Your project's Gradle version is incompatible with the Java version that Flutter is using │
│ for Gradle. │
│ │
│ If you recently upgraded Android Studio, consult the migration guide at │
│ https://flutter.dev/to/java-gradle-incompatibility. │
│ │
│ Otherwise, to fix this issue, first, check the Java version used by Flutter by running `flutter │
│ doctor --verbose`. │
│ │
│ Then, update the Gradle version specified in │
│ C:\jk-katalon\workspace\XXXX\XXXX-app\android\gradle\wrapper\gradle-wrapper.properties to be │
│ compatible with that Java version. See the link below for more information on compatible │
│ Java/Gradle versions: │
│ https://docs.gradle.org/current/userguide/compatibility.html#java │
│ │
│ │
└─────────────────────────────────────────────────────────────────────────────────────────────────┘