1 回答
TA贡献1810条经验 获得超4个赞
我让它工作了。该解决方案可以在我已经提到的帖子中找到(stackoverflow:如何使用 httpClient4 使用 Axis2 配置 SSL)。应该读到最后,但我不需要 SSL。为了防止烦人的 INFO 记录,Axis2Repo 文件夹包含两个空文件夹services和modules。
private GetCatalogResponse getCatalogData(GetCatalog getCat) throws AxisFault, GetCatalogExceptionException, RemoteException, Exception {
ConfigurationContext ctx;
ctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem("MainFolder/Config-Files/Axis2Repo","MainFolder/Config-Files/axis2.xml");
PRODUCTCATALOGStub prodCat = new PRODUCTCATALOGStub(ctx, this.targetEndpoint);
GetCatalogResponse wsResponse;
// Basic Authentication
Options option = prodCat._getServiceClient().getOptions();
HttpClient httpClient = new DefaultHttpClient();
HttpTransportPropertiesImpl.Authenticator auth = new HttpTransportPropertiesImpl.Authenticator();
auth.setPreemptiveAuthentication(true);
auth.setUsername(this.User);
auth.setPassword(Kryptologie.entschluesseln(Crypto.decipher(this.pw)));
option.setProperty(HTTPConstants.AUTHENTICATE, auth);
option.setProperty(HTTPConstants.CACHED_HTTP_CLIENT, httpClient);
// calling the webservice
wsResponse = prodCat.getCatalog(getCat);
return wsResponse;
}
我唯一不喜欢的是类DefaultHttpClient已被弃用,但 Axis2 需要这个。也许有人知道另一种方式,不需要弃用的类。
添加回答
举报