我遇到了WSO2 Api Manager 1.7 SOAP API的问题
我已在我的Api Manager中注册了许多租户,并为每个人创建了许多API,并为碳超级管理员创建了一个API(租户-1234)。
我使用wsimport命令行(Axis2)从此wsdl url https://<.AM_IP>:<.AM_PORT>/services/API?wsdl
创建了一个Web服务客户端。
如果我使用Carbon Tenant管理员凭证调用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);
答案 0 :(得分:0)
如果您需要检索租户信息,则必须使用租户服务注册表。以下是租户检索API详细信息的WSDL URL。
https://<AM_IP&gt;:&lt; AM_PORT&gt; / t /&lt; TENANT_DOMAIN&gt; / services / API?wsdl
但是,如果您需要以API Manager方式获取所有API,则可以使用API Manager Documentation中描述的REST服务。