【原】
阿里云oss上传文件,报错“java.lang.ClassNotFoundException: org.jdom.input.JDOMParseException”
2019-09-22
围观( )
点赞( )
【
编程技巧
】
简介:
之前一直使用七牛云,好用贵好用,但是它不提供目录分级的功能,着实是让我感到麻烦,为了表示目录层级,还必须将文件命名为带层级结构的,今天换阿里云oss体验了一把,分分钟报错“java.lang.ClassNotFoundException: org.jdom.input.JDOMParseException”
之前一直使用七牛云,好用归好用,但是它不提供目录分级的功能,着实是让我感到麻烦,为了表示目录层级,还必须将文件命名为带层级结构的,就去体验了一把阿里云oss,结果却分分钟报错:
Exception in thread "main" java.lang.NoClassDefFoundError: org/jdom/input/JDOMParseException
at com.aliyun.oss.internal.OSSObjectOperation.putObject(OSSObjectOperation.java:130)
at com.aliyun.oss.OSSClient.putObject(OSSClient.java:494)
at com.aliyun.oss.OSSClient.putObject(OSSClient.java:478)
at com.aliyun.oss.OSSClient.putObject(OSSClient.java:472)
at com.wolffy.util.OssUtil.upload(OssUtil.java:49)
at com.wolffy.util.OssUtil.main(OssUtil.java:131)
Caused by: java.lang.ClassNotFoundException: org.jdom.input.JDOMParseException
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 6 more
竟然是jdom报错了,这还是我之前做xml解析的时候引入的jar包,偷了个懒,没有直接去官网找文档,去百度查了一下,发现是因为我本机的jdom版本太高,
阿里云oss只能使用1.x的jdom版本
。。。
WTF,简直不能理解这是什么骚操作,吐槽过后,将jar包改为低版本的,问题还真的就解决了~
<!-- jdom,阿里云OSS只能使用1.1.x版本 -->
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom</artifactId>
<!--<version>2.0.2</version>-->
<version>1.1.3</version>
</dependency>
我自己写的一个简易demo,有需要的可以拿去参考一下:
package com.wolffy.util;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URL;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
* 阿里云OSS工具类,https://www.alibabacloud.com/help/zh/doc-detail/32013.htm
* @author SongFei
* @date 2019/9/20 22:13
@Setter
@Slf4j
public class OssUtil {
* Region信息,就是你选择的地步分布,如:上海、杭州
private String endpoint = "http://oss-cn-shanghai.aliyuncs.com";
* 密钥ID
private String accessKeyId = "你的accessKeyId";
* 加密钥匙
private String accessKeySecret = "你的accessKeySecret";
* 存储桶
private String bucketName = "你的bucketName";
* 创建存储桶
public void createBucket() {
try {
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
ossClient.createBucket(bucketName);
ossClient.shutdown();
} catch (Exception e) {
log.error("创建bucket失败:{}", ExceptionUtils.getStackTrace(e));
e.printStackTrace();
* 上传本地文件至OSS
* @param filePath 文件路径
* @param key 唯一key(在oss中的文件名字)
public void upload(String filePath, String key) {
try {
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
ossClient.putObject(bucketName, key, new FileInputStream(new File(filePath)));
ossClient.shutdown();
} catch (Exception e) {
log.error("上传文件失败:{}", ExceptionUtils.getStackTrace(e));
e.printStackTrace();
* 上传文件,以IO流方式
* @param inputStream 输入流
* @param key 唯一key(在oss中的文件名字)
public void upload(InputStream inputStream, String key) {
try {
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
ossClient.putObject(bucketName, key, inputStream);
ossClient.shutdown();
} catch (Exception e) {
log.error("上传文件失败:{}", ExceptionUtils.getStackTrace(e));
e.printStackTrace();
* 上传本地文件至OSS
* @param file 文件
* @param key 唯一key(在oss中的文件名字)
public void upload(File file, String key) {
try {
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
ossClient.putObject(bucketName, key, new FileInputStream(file));
ossClient.shutdown();
} catch (Exception e) {
log.error("上传文件失败:{}", ExceptionUtils.getStackTrace(e));
e.printStackTrace();
* 上传网络文件至OSS
* @param url 文件url,如:http://www.baidu.com/xxx.jpg
* @param key 唯一key(在oss中的文件名字)
public void uploadNetwork(String url, String key) {
try {
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
InputStream inputStream = new URL(url).openStream();
ossClient.putObject(bucketName, key, inputStream);
ossClient.shutdown();
} catch (Exception e) {
log.error("上传网络文件失败:{}", ExceptionUtils.getStackTrace(e));
e.printStackTrace();
* 删除OSS中的文件
* @param key 唯一key(在oss中的文件名字)
public void delete(String key) {
try {
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
ossClient.deleteObject(bucketName, key);
ossClient.shutdown();
} catch (Exception e) {
log.error("删除文件失败:{}", ExceptionUtils.getStackTrace(e));
e.printStackTrace();
看完文章,有任何疑问,请加入群聊一起交流!!!
扫码关注本站微信公众号,第一时间获取网站更新动态!
本文地址:https://www.jiweichengzhu.com/article/c314f35d662840929d22313a9bfe2214
关于转载:若站内作品和文章得到了你的青睐,欢迎各位朋友分享到个人站长或者朋友圈,但转载请注明文章出处和原文链接!
很赞哦! ()
上一篇:Navicat Premium v12.1.19破解补丁提示有病毒被系统拦截
下一篇:OSS如何上传文件到Bucket下的子目录中
分享一个简单的七牛云资源上传工具类
阿里云oss字体文件跨域问题解决方案
阿里云OSS上传文件出错“The bucket you are attempting to access must be addressed using the specified endpoint”
利用qshell批量导出七牛云中存储的图片和资源
IntelliJ IDEA 2024.2发布之后强推新UI,如何恢复老的经典UI界面
Uninstall hasn't detected folder of intelli] lDEA installation. Probablyuninstall.exe was moved from the installation folder.
公众号CPS变现新宠:微赚淘客查券返利机器人,开启智能省钱赚钱新时代
高返利优惠券公众号推荐
返利公众号可信吗安全吗?返利机器人哪个佣金高?
分享几个正版 IntelliJ IDEA 激活码(破解码、注册码),亲测可用,持续更新
IntelliJ IDEA 2019.3利用补丁永久破解激活教程
IntelliJ IDEA 2019.2已经可以利用补丁永久破解激活了
IntelliJ IDEA 2019.2破解激活方法(持续更新)
idea利用补丁永久激活失败,提示“License key is in legacy format”
idea激活失败,提示“Key is invalid.”
IntelliJ IDEA 2022.2 版本最新2099年永久激活方法,亲测可用,也可以开启新UI了。

java调用微信机器人SDK做个人微信的二次开发真的so easy【程序员福利】

IntelliJ IDEA 2020.2.3永久破解激活教程,亲测可用,持续更新

公众号查券机器人,淘客机器人免费版搭建教程分享(赚外快竟然如此简单,错过必后悔哦)

微信个人号淘客系统,淘宝客查券分佣返利系统,淘客返利查券机器人【转载】

IntelliJ IDEA 2020.3永久破解激活教程(跟紧了)

微信机器人开发教程-淘客机器人解决方案整理(好东西分享)

IntelliJ IDEA 2020.2.1永久破解激活教程(稳如老狗)
IntelliJ IDEA 2019.2已经可以利用补丁永久破解激活了
IntelliJ IDEA 2019.3利用补丁永久破解激活教程
IntelliJ IDEA高版本最灵活的永久破解激活方法(含插件激活,时长你说了算)
Jetbrains全家桶基于ja-netfilter的最新破解激活详细图文教程
IntelliJ IDEA 2022.1永久破解激活教程(亲测可用,持续更新)
分享几个正版 IntelliJ IDEA 激活码(破解码、注册码),亲测可用,持续更新
ja-netfilter到底需不需要mymap,2021.3.2版本激活失效?
如何激活idea2022.1及以上版本中的插件(亲测可用)
【史上最全】IntelliJ IDEA最新2022.1版本安装和激活视频教学(含插件)
IntelliJ IDEA 2022.2 版本最新2099年永久激活方法,亲测可用,也可以开启新UI了。
1、本站部分资源收集于网络,若侵犯了您的合法权益,请联系我们删除;
2、原创文章转载时请附带本站原文链接,如有违反,追究法律责任。
优秀个人博客 | 网站地图 | 百度统计 |