- Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/protocol/HttpContext
- at com.aliyun.oss.OSSClient.<init>(OSSClient.java:268)
- at com.aliyun.oss.OSSClient.<init>(OSSClient.java:193)
- at com.aliyun.oss.demo.HelloOSS.main(HelloOSS.java:76)
- Caused by: java.lang.ClassNotFoundException: org.apache.http.protocol.HttpContext
- 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
或
- Exception in thread "main" java.lang.NoClassDefFoundError: org/jdom/input/SAXBuilder
- at com.aliyun.oss.internal.ResponseParsers.getXmlRootElement(ResponseParsers.java:645)
- at … …
- at com.aliyun.oss.OSSClient.doesBucketExist(OSSClient.java:471)
- at com.aliyun.oss.OSSClient.doesBucketExist(OSSClient.java:465)
- at com.aliyun.oss.demo.HelloOSS.main(HelloOSS.java:82)
- Caused by: java.lang.ClassNotFoundException: org.jdom.input.SAXBuilder
- 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)
- ... 11 more
等类似错误,说明您的工程缺少OSS Java SDK编译或运行必须的包。OSS Java SDK依赖下列包:
- aliyun-sdk-oss-2.2.1.jar
- hamcrest-core-1.1.jar
- jdom-1.1.jar
- commons-codec-1.9.jar
- httpclient-4.4.1.jar
- commons-logging-1.2.jar
- httpcore-4.4.1.jar
- log4j-1.2.15.jar
其中,log4j-1.2.15.jar是可选的,需要日志功能的时加入该包。其它包都是必不可少的。
解决办法:您的工程中在加入OSS Java SDK依赖的包,加入方法如下:
- 如果您的工程是Eclipse。请参考Java-SDK使用手册中的安装方式二:在Eclipse项目中导入工程依赖的包。
- 如果您的工程是Ant。请把OSS Java SDK依赖的包,放入工程lib目录。
- 如果您直接使用javac/java,请使用-classpath/-cp指定OSS Java SDK依赖的包路径,或把OSS Java SDK依赖的包放入classpath路经下。