首页 > 解决方案 > webmethods 是 pub.client http 不遵循 http 客户端标准吗?

问题描述

问题: Webmethods HTTP 客户端在我的配置有多个虚拟主机的 Apache 服务器上调用了错误的端点,基于 DNS。

我认为正在发生的事情:我认为 Webmethods HTTP 客户端可能正在查找 IP 地址并使用它来执行 HTTP 操作而不是使用 DNS 名称,这导致 Apache 服务器将其识别为对主虚拟服务器的请求,不是想要的。

问题:那么,如何让 webmethods 使用 DNS 名称而不是 IP?我关于 Webmethods HTTP 客户端的理论正确吗?据我所知,这是一种非常不标准的 HTTP 客户端设计方法。

以下是它的配置方式以帮助您更好地理解:

Apache ->
  host.example.com => /var/www/host/html
  host2.example.com => /var/www/host2/html

curl -v http://host.example.comcurl -v http://host2.example.com从各自的目录中适当地返回文档。

配置pub.client:httpwithhttp://host2.example.com会导致 webmethods IS 服务器请求http://host.example.com文档(显然会导致 404:未找到)。

请注意,系统显然不是返回 HTML 之类的文档,而是提供动态内容。

标签: webmethods

解决方案


Progman 的评论是这里的线索 - 基本上为了指示 Apache 调用您的虚拟服务器,Host标头必须提供预期值。在我的例子中,那将是Host: host2.example.com. 我正在将 webmethods 复制到标题上,就像我从 curl 发布它们一样,它正在发送Host: localhost:5555到我的代理服务器。我只是创建了一个管道 Map 操作并对其进行了硬编码,现在它工作正常。

对我来说奇怪的是 pub.client:http 没有根据“url”值为我自动设置主机头,这是我所期望的。


推荐阅读