Spring 학습 노트 (21): 아 리 클 라 우 드 OSS 의 자바 SDK 를 사용 할 때 발생 하 는 문제 (첨부: 테스트 코드)
10053 단어 봄 학습 노트
이전 질문:
아 리 운 홈 페이지https://help.aliyun.com/document_detail / 32024. html 당시 다음 과 같은 오류 가 발생 했 습 니 다.
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/ssl/TrustStrategy
at com.aliyun.oss.OSSClient.(OSSClient.java:268)
at com.aliyun.oss.OSSClient.(OSSClient.java:193)
at com.aliyun.oss.demo.HelloOSS.main(HelloOSS.java:77)
Caused by: java.lang.ClassNotFoundException: org.apache.http.ssl.TrustStrategy
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 3 more
가방 의존 에 문제 가 생 겼 기 때 문 입 니 다. 아 리 클 라 우 드 의 oss SDK 는 apache httpclient 4.4.1 을 인 용 했 고 제 프로젝트 에 도 도입 되 었 지만 버 전이 다 르 기 때문에 문제 가 생 겼 습 니 다.프로젝트 디 렉 터 리 에서 "mvn dependency: tree" 를 실행 할 수 있 습 니 다. 상호 의존 다음은 가방 의존 을 해결 하 는 두 가지 방법 입 니 다.
제 프로젝트 에 httpclient 4.3.6 을 사 용 했 습 니 다. 코드 는 다음 과 같 습 니 다. 첫 번 째 방법 으로 버 전 을 4.4.1 로 올 릴 수 밖 에 없습니다.두 번 째 로 아 리 클 라 우 드 SDK 에서 의존 하 는 httpclient 를 제거 하면 잘못된 것 입 니 다. 제 프로젝트 의 httpclient 버 전이 낮 기 때 문 입 니 다.
<dependency>
<groupId>org.apache.httpcomponentsgroupId>
<artifactId>httpcoreartifactId>
<version>4.3.3version>
dependency>
<dependency>
<groupId>org.apache.httpcomponentsgroupId>
<artifactId>httpclientartifactId>
<version>4.3.6version>
dependency>
<dependency>
<groupId>org.apache.httpcomponentsgroupId>
<artifactId>httpclient-cacheartifactId>
<version>4.3.6version>
dependency>
<dependency>
<groupId>org.apache.httpcomponentsgroupId>
<artifactId>httpmimeartifactId>
<version>4.3.6version>
dependency>
다음은 테스트 코드:
public static void main(String[] args)
{
// endpoint , region
String endpoint = "http://oss-cn-beijing.aliyuncs.com";
// accessKey https://ak-console.aliyun.com/#/
String accessKeyId = "*****************";
String accessKeySecret = "********************";
// OSSClient
OSSClient client = new OSSClient(endpoint, accessKeyId, accessKeySecret);
// :user.dir , user.dir ; Linux , /java/apache-tomcat-8.0.24/bin/,
String dir = System.getProperty("user.dir");
System.out.println(dir);
//
client.putObject("jalon-test", "1.jpg", new File("E:\\1.jpg"));
//
client.getObject(new GetObjectRequest("jalon-test","1.jpg"),new File(dir+"\\1.jpg"));
}
다음은 실행 결과: E: \ SVNWorkSpace\shoes_src, 그리고 1. jpg 는 oss 에 성공 적 으로 업로드 되 었 고 프로젝트 루트 디 렉 터 리 에 다운로드 되 었 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spring 학습 노트 의 캐 시 데이터의 작업 방식 은 같다.그들 은 모두 절단면 을 만 들 고 Spring 캐 시 주 해 를 촉발 하 는 절 점 을 만 들 것 이다.사용 한 주석 과 캐 시 상태 에 따라 이 절단면 은 캐 시 에서 데 이 터 를 가 져...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.