不允许二进制响应或方法。当尝试仅设置http端点时,我从未得到响应,只是长时间保持处理

时间:2016-04-14 13:08:38

标签: wso2 wso2-am

我第一次使用wso2 1.10.0 api管理器。我需要使用简单的查询参数访问http后端。我发布了api并尝试通过设置为queryparam或json对象,它没有给我预期的结果。我会得到二进制响应或方法不允许。当尝试只设置http端点我从来没有得到响应它只是保持处理很长时间。请建议我如何访问简单的http后端。需要在一周内展示演示。

请帮助解决这个问题。

2 个答案:

答案 0 :(得分:0)

当您尝试访问未为该方法定义的资源时,您会得到“方法不被允许”(例如,后端只有POST方法支持资源而您尝试执行GET请求)

我想问题在于您从发布者应用程序中为api定义资源的方式。 (资源的HTTP方法无效)

如果您认为已正确定义它们,那么确定问题的下一步是wirelogs。 wirelogs提供通过api管理器网关请求的所有信息(请求标头,正文等) 请按照本文http://mytecheye.blogspot.com/2013/09/wso2-esb-all-about-wire-logs.html了解如何启用和阅读它们

然后你可以直接调用后端(比如curl -v到后端)并比较来自直接呼叫的请求和从后端发出的请求。 通往后端的网关并检查差异。这将有助于您开始发现问题

答案 1 :(得分:0)

由于您不熟悉API管理器,我建议您先执行以下操作

  1. 尝试一个类似于您的简单场景。你可以google它。这来自官方文档。会建议先尝试一个简单的场景。说https://docs.wso2.com/display/AM1100/Convert+a+JSON+Message+to+SOAP+and+SOAP+to+JSON

  2. 然后使用SOAP UI或类似应用程序直接调用后端Web服务(而不是api管理器)并获取后端的SOAP请求和SOAP响应。

  3. 然后在API管理器中创建api。你需要在我提供的样本中做同样的事情。唯一的区别是肥皂有效载荷。使用以前收集的SOAP消息。

  4. 启用有线日志。为此,请参阅上一个答案中的评论。在wirelogs中,您将看到>>和<<标志

    要阅读有线日志,首先我们必须确定消息方向。

  5. DEBUG - wire>> - 这表示从线路进入API管理器的消息(将注意到其中两组。一个进入 来自其他客户端的网关以及从后端进入api管理器的响应。 )

    DEBUG - wire<< - 这表示从API管理器传递到线路的消息(同样是两组。请求从api管理器发送到 后端服务和从api管理器发送给其他客户端的响应。)

    soap消息将打印在此日志中。检查从api管理器到后端的请求以及来自的后端响应 后端到api经理。您可以将其与您在步骤2中收集的onces进行比较,并根据需要对sequnces进行修改。 wirelogs还将打印http标头。所以检查一下。

    希望您可以使用这些步骤设置工作样本