我有一个Workday工作室集成,使用HTTP组件向供应商的API发送GET请求,但我收到以下错误。供应商没有用于连接的用户名/密码。我必须使用令牌进行连接。有谁知道如何使这项工作从Studio到GET数据?
原因:org.springframework.beans.factory.NoSuchBeanDefinitionException:没有名为' http-token-auth'已定义
我已经通过多种方式发送请求:使用令牌对URL进行硬编码,使用令牌设置标头。以下是我的不同尝试。
我不确定应该使用什么Http授权。没有用户名/密码,只有一个令牌和一个使用CURL发布的URL。下面是工作室与HTTP属性的相似之处。
此外,我能够使用SoapUI获取数据。下面是SoapUI中请求的片段。
以下是SoapUI中的JSON原始请求,该请求成功地从API获取数据。
非常感谢任何帮助!!
谢谢你,-Remo
答案 0 :(得分:2)
前言;我对Workday Studio不熟悉,似乎没有任何公开文档,所以这个答案可能会有一些细微之处。
工作日,您的代码或可能正在使用的库正在引用一个不存在或无法找到的bean(请参阅Spring文档:Core Technologies)。
如果您没有在此处编写任何Java代码,那么几乎可以肯定是Workday Studio中的配置问题或错误。以下是基于您提供的信息的一些观察结果。但首先,一个疯狂的猜测。
似乎Workday处理这个问题的方式与cURL或SoapUI略有不同。 cURL和SoapUI正在执行以下操作:
然而,听起来像Workday正在做更多的事情:
我认为有一些方法可以让Workday与标准REST API很好地配合,并且只是按照预期提供供应商服务器的API密钥,而不是尝试做出挑战/响应。
如果不是这样,下面会有更多的杂草可能性。
错误中指定的bean名称是http-token-auth
,它是kebab-case。命名bean的约定是(lower-)camelCase,所以指定的地方可能只是使用了错误的外壳。
这可能是Workday Studio配置,XML配置文件或您编写的一些自定义代码(如果有)。
如果bean名称正确,则可能存在其他一些配置问题。 Spring可以通过扫描类路径隐式检测候选组件(请参阅Spring文档:Classpath scanning and managed components)或从项目XML加载它。问题可能是:
这似乎不太可能,但总是有可能。如果您还没有编写任何Java代码,那么Workday代码中的某些内容会提供这个意外的“http-token-auth”或者从其他地方不恰当地接受它并尝试使用它来加载bean。
由于您尝试使用供应商的API,我强烈建议您尝试与其中一位工程师合作。保证,他们至少有一名工程师以前处理过复杂的集成问题。他们将获得有关其API的更多详细信息,并且可能能够为您提供有关您能够共享的任何配置/代码的更多直接输入。
答案 1 :(得分:0)
当我使用Bearer身份验证从Workday Studio向第三方Web服务发送Rest POST请求时,报告了相同的错误消息。
解决方案是将标头输出类型设置为“消息”而不是“ rootpart”。这不是Workday Studio中的错误。
Workday Studio set header output type setting
关于, 设拉子