2023年12月8日发(作者:)
ovirt-engine-sdk-java的使用过程中的错误整理
本篇记录ovirt java sdk的使用前准备与使用中的一些坑。
0、参考文档:
1、下载ovirt java sdk的jar包
2、下载所需要的依赖包
在下载页面下方,有着一个“Compile Dependencies”表格,是sdk的依赖包。
根据表格中的信息下载相应的版本的jar包。
3、测试使用
import ;
import Exception;
import redConnectionAttemptError;
import ption;
import agementException;
import ;
public class SdkTest {
private static final String URL = "host/api/";
private static final String USERNAME = "123@"; // 普通用户账号
private static final String PASSWORD = "123456";
@SuppressWarnings("deprecation")
public static void main(String[] args) throws ClientProtocolException, ServerException,
UnsecuredConnectionAttemptError, IOException {
Api api = new Api(URL, USERNAME, PASSWORD);
List
int len = ();
for (int i = 0; i < len; i ++) {
("%sn", (i).getName());
}
try {
();
} catch (Exception e) {
tackTrace();
}
}
}
* 注意:“ClientProtocolException”异常是Api类必须的,而且是在ProtocolException(httpclient 4.2)中。
4、不停的ClassNotFoundException
(1)照理来说,只要将这些jar包放入buildpath中,就可以正常使用sdk了,但是实际的运行结果:
Exception in thread "main" sDefFoundError: org/apache/http/params/HttpParams
at .
at .
at (:22)
Caused by: otFoundException: rams
at ass(Unknown Source)
at ass(Unknown Source)
at er$ass(Unknown Source)
at ass(Unknown Source)
... 3 more
显示缺少了rams,但是我并没有用到这个东西!?
rams ----->>>
(2)加入了httpcore之后,还没完:
Exception in thread "main" sDefFoundError: org/apache/commons/logging/LogFactory
at gClientConnectionManager.
at gClientConnectionManager.
at gClientConnectionManager.
at PoolingClientConnectionManager(:314)
at DefaultHttpClient(:257)
at (:437)
at .
at .
at (:22)
Caused by: otFoundException: tory
at ass(Unknown Source)
at ass(Unknown Source)
at er$ass(Unknown Source)
at ass(Unknown Source)
... 9 more
这次缺的是tory。有种没完没了的感觉。
tory ----->>>
(3)又加了jar包,再次运行程序:
Exception in thread "main" sDefFoundError: org/apache/commons/codec/binary/Base64
at ticate(:186)
at ticate(:158)
at ticate(:125)
at s(:83)
at s(:80)
at s(:109)
at cess(:176)
at e(:516)
at e(:906)
at e(:805)
at e(:97)
at e(:114)
at (:415)
at (:394)
at ryPoint(:653)
at sources(:665)
at .
at .
at (:22)
Caused by: otFoundException: 64
at ass(Unknown Source)
at ass(Unknown Source)
at er$ass(Unknown Source)
at ass(Unknown Source)
... 19 more
是真的没完没了!?又缺了包!这次是64。到底是哪里用到了这东西
64 ----->>>
5、创建Api代理过程中的错误
(1)执行上面的代码,没有ClassNotFoundException。但是出现了500服务器错误。
Exception in thread "main"
code : 500
reason: Internal Server Error
detail:
at e(:120)
at (:415)
at (:394)
at ryPoint(:653)
at sources(:665)
at .
at .
at (:25)
不知道具体原因。代码中使用的是普通账号,但是该账号和密码在ovirt engine上能成功登录。
后来使用管理员账号登录绕过了这个问题。
(2)管理员账号登录失败,因为证书验证失败
Exception in thread "main" rUnverifiedException: peer not authenticated
at rCertificates(Unknown Source)
at (:128)
at tSocket(:572)
at nnection(:180)
at (:294)
at nect(:641)
at e(:480)
at e(:906)
at e(:805)
at e(:97)
at e(:114)
at (:415)
在这里采用的解决方法是将ovirt engine的证书添加到jre的证书库中。
首先将下载好的crt证书复制到jre的安装目录下的bin目录中。
然后,在bin目录下打开cmd,执行命令:
D:SoftwareJavajre1.8bin>keytool -import -v -trustcacerts -alias svcloud -file -storepass changeit -keystore
D:/Software/Java/jre1.8/lib/sec
urity/cacerts
所有者: CN=.46215, O=, C=US
发布者: CN=.46215, O=, C=US
序列号: 1000
有效期为 Wed Sep 12 10:43:25 CST 2018 至 Sun Sep 10 10:43:25 CST 2028
证书指纹:
MD5: 35:B2:6F:79:15:29:7C:C3:39:D3:89:BC:1B:CA:08:38
SHA1: 05:62:9C:41:42:92:2D:ED:07:86:FF:01:AD:4F:49:1E:1C:83:F3:B2
SHA256: 99:37:BF:A9:CC:0B:FA:3C:C1:76:34:DA:71:22:02:2B:32:93:D4:D9:8B:
46:30:C6:B7:CC:CB:D9:08:B9:60:BD
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3
。。。
是否信任此证书? [否]: y
证书已添加到密钥库中
[正在存储D:/Software/Java/jre1.8/lib/security/cacerts]
如果没报错,那么证书添加完毕。
(3)404 Not Found
Exception in thread "main"
code : 404
reason: Not Found
detail:
at e(:120)
at (:415)
at (:180)
at (:154)
at (:75)
at (:27)
把URL中的api最后的“/”去掉即可。并且URL一定是以“/api”结尾的。
(4)端口错误
Exception in thread "main" lArgumentException: Port is invalid: -1
at .
at SchemeRegistry(:381)
at PoolingClientConnectionManager(:312)
at DefaultHttpClient(:257)
at (:437)
at .
at .
at (:24)
6、所需要的所有jar包
D:及其依赖>dir
驱动器 D 中的卷是 软件
卷的序列号是 DA18-EBFA
D:及其依赖 的目录
2018-10-29 15:25
2018-10-29 15:25
2018-10-29 11:25 232,019
2018-10-29 14:55 284,184
2018-10-29 14:05 61,829
2018-10-29 11:25 424,648
2018-10-29 11:38 223,282
2018-10-29 11:21 489,884
2018-10-29 10:19 1,085,280
7 个文件 2,801,126 字节
2 个目录 63,892,709,376 可用字节
在最后的时候,才发现,原来后面缺少的jar包都是sdk的依赖包的依赖包。有点绕口,看图就知道了。
(1)commons-beanutils的依赖包
(2)log4j的依赖包(3)httpclient的依赖包


发布评论