【问题标题】:WSO2 get api list SOAP requestWSO2 获取 api 列表 SOAP 请求
【发布时间】: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


【解决方案1】:

如果您需要检索租户信息,您必须为此使用租户服务注册。以下是租户检索 API 详细信息的 WSDL URL。

https://<AM_IP>:/t//services/API?wsdl

但如果您需要以 API Manager 方式获取所有 API,您可以使用 API Manager Documentation 中描述的 REST 服务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-26
    • 1970-01-01
    • 2016-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-24
    • 2011-07-26
    相关资源
    最近更新 更多