x-file-storage icon indicating copy to clipboard operation
x-file-storage copied to clipboard

solon 下使用 minio 报错

Open transtone opened this issue 1 year ago • 5 comments

按照文档配置了 solon 环境,但在上传文件的时候报错。

solon-2.9.3

	at org.noear.solon.SolonApp.tryHandle(SolonApp.java:467)
	at org.noear.solon.boot.smarthttp.http.SmHttpContextHandler.handleDo(SmHttpContextHandler.java:125)
	at org.noear.solon.boot.smarthttp.http.SmHttpContextHandler.handle0(SmHttpContextHandler.java:103)
	at org.noear.solon.boot.smarthttp.http.SmHttpContextHandler.lambda$handle$0(SmHttpContextHandler.java:88)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:775)

Caused by: java.lang.invoke.LambdaConversionException:
 Invalid receiver type class org.noear.solon.core.handle.UploadedFile; 
not a subtype of implementation receiver type class org.noear.solon.core.handle.DownloadedFile

	at java.lang.invoke.AbstractValidatingLambdaMetafactory.validateMetafactoryArgs(AbstractValidatingLambdaMetafactory.java:240)
	at java.lang.invoke.LambdaMetafactory.metafactory(LambdaMetafactory.java:303)
	at java.lang.invoke.CallSite.makeSite(CallSite.java:302)
	... 52 more


{
  "code": 500,
  "msg": "服务端运行出错",
  "result": "call site initialization exception"
}

用 minioClient 测试了地址和 bucket,是正常可以访问的。

测试项目地址:https://gitee.com/gridsoft/x-file-storage-solon-test

transtone avatar Sep 19 '24 08:09 transtone

找到原因了。 2.8.5 时,把 UploadedFile 的基类,改成了 FileBase 。。。我请作者升级 solon 到 2.8.6

noear avatar Sep 20 '24 03:09 noear

谢谢你的反馈!

noear avatar Sep 20 '24 03:09 noear

目前可以参考 文件适配器 对 UploadedFile 手动适配一下就可以了

1171736840 avatar Sep 20 '24 05:09 1171736840

就是用 FileWrapper 包装,替代下它。

noear avatar Sep 20 '24 05:09 noear

目前可以参考 文件适配器 对 UploadedFile 手动适配一下就可以了

多谢回复。

本地编译了一个升级了依赖的版本 2.2.1-1,放到了 ~/.m2/ 下。机智如我~~

transtone avatar Sep 20 '24 07:09 transtone

2.3.0 已修复此问题,详情查看 更新记录

1171736840 avatar Jun 22 '25 08:06 1171736840