不允许获取二进制响应或方法.当我尝试只设置http端点时,我从来没有得到响应——它只是长时间地保持处理



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

请帮忙解决这个问题。

当您尝试访问未为该方法定义的资源时,会得到"method not allowed"(假设后端只有POST方法支持资源,并且您尝试执行get请求)

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

如果你认为你已经正确地定义了它们,那么识别问题的下一步就是窃听日志。wirelogs提供通过api管理器网关的请求中的所有信息(请求头、正文等)关注这篇文章http://mytecheye.blogspot.com/2013/09/wso2-esb-all-about-wire-logs.html关于如何启用和读取

然后,您可以直接调用后端(比如对后端调用curl-v),并将直接调用的请求与发出的请求进行比较网关到后端并检查差异。这将帮助您开始查找问题

由于您是API经理的新手,我建议您执行以下第一个

  1. 尝试一个类似于你的简单场景。你可以在谷歌上搜索。这是官方文档。建议先尝试一个简单的场景。说https://docs.wso2.com/display/AM1100/Convert+a+JSON+消息+到+SOAP+和+SOAP+到+JSON

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

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

  4. 启用接线日志。请参阅前面回答中的注释。在日志中,您将看到>gt;并且<lt;标志

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

调试-wire>gt;-这表示从连线进入API管理器的消息(将注意到其中的两组来自rest客户端的网关和来自后端的api管理器的响应。)

调试-wire<lt;-这表示从API管理器到连线的消息(同样是从API管理器到后端服务和从api管理器发送到rest客户端的响应。)

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

希望您可以使用以下步骤设置一个工作示例

最新更新