WSO2获取api列表SOAP请求

时间:2015-03-06 10:48:48

标签: wso2 wso2carbon wso2-am

我遇到了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);

1 个答案:

答案 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服务。