当前位置: 首页 > 知识库问答 >
问题:

动态endpointWSO2 API管理器未更新TO标头

邵旺
2023-03-14

嗨,我遇到了几个博客和论坛,我仍然无法实现动态endpointurl更新,我的需求是根据请求参数值更新APIendpointurl。因此,我尝试在WSO2 Api Manager 2.6.0中使用动态endpoint特性。我已经上传了在流序列与下面的代码。但我还是明白错误。

在流代码

<sequence xmlns="http://ws.apache.org/ns/synapse" name="admin--dynamicAPI_v1.0" trace ="enable">
   <property name="REST_URL_POSTFIX" scope="axis2" action="remove"/>
   <log level="full">    
    <property name="headerTo" value="http://actualurl/tobe/redirected"/>
    <header name="To" expression="get-property('headerTo')"/>
    <property name="ENDPOINT_ADDRESS" value="http://actualurl/tobe/redirected"/>
 </log>
</sequence>

TID:[-1234][][2020-06-02 10:37:33,154]信息{org.apache.synapse.mediators.builtin.logmediator}-收件人:/service/1.0/,消息ID:urn:uuid:c341daaf-300e-4cdd-b6cd-ba0a7cb4b49d,方向:请求,headerTo=http://actualurl/tobe/redirected,ENDPOINT_ADDRESS=http://actualurl/tobe/redirected,信封:{10:37:33,156]错误{org.apache.axis2.description.clientutils}-系统无法从/service/1.0/*URL推断传输信息。{org.apache.axis2.description.clientutils}tid:[-1234][][2020-06-02 10:37:33,156]错误{org.apache.synapse.core.axis2.axis2sender}-发送消息{org.apache.synapse.core.axis2.axis2sender}org.apache.axis2.axisfault:系统无法从/service/1.0/*URL推断传输信息。在org.apache.axis2.description.clientutils.InferoutTransport(Clientutils.java:86)在org.apache.synapse.core.axis2.DynamicOperationClient.ExecuteImpl(DynamicAxisOperation.java:116),在org.apache.axis2.client.OperationClient.ExecuteImpl(DynamicAxisOperation.java:116),在org.apache.synapse.core.Axis2.Axis2.Axis2.FlexibleMepClient.Execute)在org.apache.synapse.core.axis2.axis2SynapseEnvironment.send(Axis2SynapseEnvironment.java:547)在org.apache.synapse.endpoints.abstractendPoint.send(AbstractendPoint.java:384)在org.apache.synapse.endpoints.defaultendPoint.send(defaultendPoint.java:77)在org.apache.synapse.endpoints.indrectendPoint.send(listmediator.java:108)位于org.apache.synapse.mediators.abstractlistmediator.mediator(abstractlistmediator.java:70)在org.apache.synapse.mediators.filters.filtermediator.mediator(filtermediator.java:169)在org.apache.synapse.mediators.abstractlistmediator.mediator(abstractlistmediator.mediator.java:108)在rest.api.process(api.java:399)在org.apache.synapse.rest.restRequestHandler.apiProcessnonDefaultStrategy(restRequestHandler.java:149)在org.apache.synapse.rest.restrestRequestHandler.dispatchtoapi(restRequestHandler.java:95)在org.apache.synapse.rest.restrestRequestHandler.process(restRequestHandler.java:71)在接收(synapsemessageReceiver.java:92)在org.apache.axis2.engine.axisengine.rece(axisengine.java:180)在org.apache.synapse.transport.passthru.serverworker.processnonEntityEnclosingResTHandler(serverworker.java:337)在org.apache.synapse.transport.passthru.serverworker.run(serverworker.java:158)在org.apache.axis2.transport.base.threads.nativeWorkerpool readPoolExecutor$worker.run(threadPoolExecutor.java:624)at java.lang.thread.run(thread.java:748)*

共有1个答案

张腾
2023-03-14

这是因为您已经在日志中介器中完成了这一操作。你能像下面这样试试吗。

<sequence xmlns="http://ws.apache.org/ns/synapse" name="admin--dynamicAPI_v1.0" trace ="enable">
   <property name="REST_URL_POSTFIX" scope="axis2" action="remove"/>
   <property name="headerTo" value="http://actualurl/tobe/redirected"/>
   <header name="To" expression="get-property('headerTo')"/>
   <log level="full">    
      <property name="ENDPOINT_ADDRESS" expression="get-property('headerTo')"/>
   </log>
</sequence>
 类似资料:
  • 这篇文档将全面覆盖热更新管理器 AssetsManager 的设计思路,技术细节以及使用方式。由于热更新机制的需求对于开发者来说可能各不相同,在维护过程中开发者也提出了各个层面的各种问题,说明开发者需要充分了解热更新机制的细节才能够定制出符合自己需要的工作流。所以这篇文档比较长,也尽力循序渐进得介绍热更新机制,但是并不会介绍过多使用层面的代码,对于想要先了解具体如何使用热更新机制来更新自己游戏的开

  • 是否有任何可能的方法,我可以更新AWS秘密管理器中的密钥/值,而不必检索当前值,然后更新它们? 我找到的当前解决方案首先从secrets Manager中检索值: 但我不想检索秘密值。首选语言是Python。

  • 首先,感谢您的使用。 使用方法: 更新服务器端: 更新包格式*.zip 命名规则为update1.zip为第一次更新,第二个更新包为update2.zip依次类推。 zip文件中除了更新文件还必须包含updatelist.txt。此文件用于指定更新文件路径。 如: shouye.jsps count.html WEB-INF#classes#com#fesco#personnel#update#U

  • 你能告诉我从零开始恢复Android Studio的程序吗?提前谢谢...

  • 我在GTM中创建了一个自定义JavaScript变量,用于在弹出表单上拉出表单标题。 我使用元素可见性和CSS选择器来识别表单。 这是一个有多个表单的页面,所以我不想有多个标签和触发器,我想在一个页面上完成它,然后动态地改变它。 因此,CJS是: 当在控制台中测试时,它工作得很好,但是当我在Google Tag Manager的预览模式下测试它时,第一个工作得很好,但是如果我打开任何其他表单,以前

  • 此外: 我和客户也有一个很奇怪的行为。当我用WebClient.Exchange设置域角色时,它工作得很好。当我使用。retrieve()时,没有设置realmrole。对于所需的操作,我尝试了两种解决方案,但没有任何变化。