【发布时间】:2019-07-09 20:10:58
【问题描述】:
我在使用 WSO2 API Manager 时遇到了一个问题:
我无法使用在租户中创建的 API。
场景:
我们在服务器中部署了 wso2 api manager,all in one,版本 2.6.0 在服务器中使用 Oracle Linux 7,一切正常。
我们没有使用端口偏移,也没有安装分析或身份服务器。
在没有租户的情况下创建和使用 API 工作正常。
现在我们在这个服务器上创建了两个租户:abc.com 和 123.com。
在 abc.com 的管理控制台中,我将 123.com 定义为外部存储。
我们登录 API Publisher,在 租户 abc.com 并创建 API ApiTeste,我们将其发布到外部存储 123.com,没有错误。
在我们登录 API Store 后,在租户 abc.com(与创建 API 的位置相同) 中,我们订阅了 API,但是当我们尝试使用此 API 时出现错误。
有人可以帮我解决这个问题吗?
任何帮助将不胜感激,在此先感谢。
吉斯兰
EXTERNAL STORE DEFINITION(删除标签只是为了方便可视化):
店铺网址:http://myhostapis.apis.com:9763/store
ExternalAPIStore:id="123COM" type="wso2"
className="org.wso2.carbon.apimgt.impl.publishers.WSO2APIPublisher"
显示名称:123Com
端点:http://myhostapis.apis.com:9763/store
用户名:admin@123.com
密码:xxxxxxxx
按照链接 [1] 定义外部商店,但没有找到其他使用租户的案例:
[1]https://docs.wso2.com/display/AM260/Publish+to+multiple+external+API+stores
日志错误:
TID:[-1] [] [2019-06-19 08:30:46,348] 错误 {org.apache.axis2.engine.AxisEngine} - 找不到服务 用于端点参考 (EPR) {org.apache.axis2.engine.AxisEngine} org.apache.axis2.AxisFault:找不到服务 端点参考 (EPR) 在 org.apache.axis2.engine.DispatchPhase.validateTransport(DispatchPhase.java:251) 在 org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:109) 在 org.apache.axis2.engine.Phase.invoke(Phase.java:329) 在 org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:261) 在 org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:167) 在 org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:263) 在 org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748) TID: [-1] [] [2019-06-19 08:30:46,350] 错误 {org.apache.synapse.transport.passthru.ClientWorker} - 故障 通过 Axis2 处理响应消息 {org.apache.synapse.transport.passthru.ClientWorker} org.apache.axis2.AxisFault:找不到服务 端点参考 (EPR) 在 org.apache.axis2.engine.DispatchPhase.validateTransport(DispatchPhase.java:251) 在 org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:109) 在 org.apache.axis2.engine.Phase.invoke(Phase.java:329) 在 org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:261) 在 org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:167) 在 org.apache.synapse.transport.passthru.ClientWorker.run(ClientWorker.java:263) 在 org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 在 java.lang.Thread.run(Thread.java:748) TID: [-1] [] [2019-06-19 08:30:54,343] 信息 {org.apache.synapse.mediators.builtin.LogMediator} - 状态 = 执行默认的“故障”序列,ERROR_CODE = 101504,ERROR_MESSAGE = 发送超时 {org.apache.synapse.mediators.builtin.LogMediator}
【问题讨论】:
-
尽管有这个错误,我们可以看到后端错误响应。
-
TID: [-1] [] [2019-06-19 08:30:46,345] 调试 {org.apache.synapse.transport.http.headers} - http-outgoing-2
-
TID: [-1] [] [2019-06-19 08:30:46,345] 调试 {org.apache.synapse.transport.http.headers} - http-outgoing-2
-
TID: [-1] [] [2019-06-19 08:30:46,345] 调试 {org.apache.synapse.transport.http.headers} - http-outgoing-2 的服务
-
我在新包装中尝试了上述场景,它似乎有效。根据打印的错误,似乎有超时。可能是后端没有发送响应。
标签: wso2-am