【发布时间】:2015-03-08 01:30:21
【问题描述】:
我对 WSO2 Api Manager 1.7 SOAP API 有疑问。
我在我的 Api Manager 中注册了许多租户,并为每个租户创建了许多 API,并为 carbon 超级管理员(租户 -1234)创建了一个 API。
我已经使用 wsimport 命令行 (Axis2) 从这个 wsdl url https://<.AM_IP>:<.AM_PORT>/services/API?wsdl 创建了一个 Web 服务客户端。
如果我使用 Carbon 租户管理员凭据调用 getAPIArtifactIDs 操作,我可以获得 api 工件 ID 列表。
如果我使用另一个租户凭据调用 getAPIArtifactIDs 操作,我的列表为空。
我该如何解决这个问题?
这是我的代码:
System.getProperties().setProperty("javax.net.ssl.trustStore", "wso2carbon.jks");<br>
System.getProperties().setProperty("javax.net.ssl.trustStorePassword", "wso2carbon");<br>
System.getProperties().setProperty("javax.net.ssl.trustStoreType", "JKS");<br>
HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(String hostname, SSLSession session) {
return true;
}
});
API api = new API();
APIPortType port = api.getAPIHttpsSoap11Endpoint();
BindingProvider bp = (BindingProvider)port;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "https://<.AM_IP>:<.AM_PORT>/services/API.APIHttpsSoap11Endpoint");<br>
bp.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "admin");<br>
bp.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "admin");<br>
List<String> ids = port.getAPIArtifactIDs();
if(ids!=null && !ids.isEmpty())
for(String id : ids)
System.out.println(id);
【问题讨论】:
-
您可以尝试使用soapui 客户端,验证您是否收到租户客户端的响应。如果它适用于soapui客户端,则需要检查您的代码。
标签: wso2 wso2carbon wso2-am