尝试上传文件时出现异常
Posted
技术标签:
【中文标题】尝试上传文件时出现异常【英文标题】:exception when trying to upload a file 【发布时间】:2021-12-25 18:08:36 【问题描述】:我正在尝试将文件上传到 Azure Blob 存储,但将文件推送到存储时出现错误。
我正在使用带有 Quarkus 的 java 11 进行开发。 在 POM 上,我添加了工件 azure-storage-blob 和 azure-sdk-bom
代码:
BlobClient blobClient = new BlobClientBuilder()
.endpoint("...")
.sasToken("...")
.containerName("random-files")
.blobName("file")
.buildClient();
String randomText = "random string";
blobClient.upload(BinaryData.fromString(randomText));
恢复错误
io.net.cha.DefaultChannelPipeline] (vert.x-eventloop-thread-2) 触发了一个 exceptionCaught() 事件,它到达了管道的尾部。这通常意味着管道中的最后一个处理程序没有处理异常。:java.lang.NoClassDefFoundError: Could not initialize class io.netty.handler.codec.http.HttpVersion
完整的错误日志:
WARN [io.net.cha.DefaultChannelPipeline] (vert.x-eventloop-thread-2) 触发了一个 exceptionCaught() 事件,它到达了管道的尾部。这通常意味着管道中的最后一个处理程序没有处理异常。:java.lang.NoClassDefFoundError: Could not initialize class io.netty.handler.codec.http.HttpVersion 在 io.vertx.core.http.impl.VertxHttpRequestDecoder.createMessage(VertxHttpRequestDecoder.java:35) 在 io.netty.handler.codec.http.HttpObjectDecoder.decode(HttpObjectDecoder.java:273) 在 io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:501) 在 io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:440) 在 io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:404) 在 io.netty.handler.codec.ByteToMessageDecoder.channelInputClosed(ByteToMessageDecoder.java:371) 在 io.netty.handler.codec.ByteToMessageDecoder.channelInactive(ByteToMessageDecoder.java:354) 在 io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:262) 在 io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:248) 在 io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:241) 在 io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1405) 在 io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:262) 在 io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:248) 在 io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:901) 在 io.netty.channel.AbstractChannel$AbstractUnsafe$8.run(AbstractChannel.java:818) 在 io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) 在 io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) 在 io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:497) 在 io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) 在 io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) 在 io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) 在 java.base/java.lang.Thread.run(Thread.java:833)
你知道问题出在哪里吗?我只是使用 Quarkus 上传文件的基础知识,但看起来存在版本问题或类似问题。
【问题讨论】:
你能添加你的 pom.xml 吗?看起来你缺少一些基本的 netty 包? 我不这么认为..实际上我添加了依赖项错误消息显示 ssl 问题。
使用和配置详情请参考link
Azure 存储 Blob 服务组件,URI 语法:azure-storage-blob:accountName/containerName
MAVEN 坐标
Create a new project with this extension on code.quarkus.io
或者将坐标添加到您现有的项目中:
< dependency>
< groupId>`org.apache.camel.quarkus`< /groupId>
< artifactId>`camel-quarkus-azure-storage-blob`< /artifactId>
< /dependency>
查看User guide,了解有关编写 Camel Quarkus 应用程序的更多信息。
本地模式下的 SSL
此扩展在本机模式下自动启用 SSL 支持。因此,您无需将quarkus.ssl.native=true
添加到您的application.properties
。
参考here
如果您仍然遇到问题,请在此处提出问题here
【讨论】:
以上是关于尝试上传文件时出现异常的主要内容,如果未能解决你的问题,请参考以下文章
2021-12-16 使用MultipartFile上传文件时出现异常