动态端点WSO2 API管理器未更新TO标头

问题描述 投票:0回答:1

您好,我遇到过多个博客和论坛,但仍无法实现动态端点URL更新。我的要求是根据请求参数值更新API端点URL。因此,我试图在WSO2 Api Manager 2.6.0中使用动态端点功能。我已使用以下代码上传了流程中的序列。但是我仍然得到错误。

流入代码:

<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/,MessageID: urn:uuid:c341daaf-300e-4cdd-b6cd-ba0a7cb4b49d,方向:请求, headerTo = http://actualurl/tobe/redirected,ENDPOINT_ADDRESS = http://actualurl/tobe/redirected,信封: {org.apache.synapse.mediators.builtin.LogMediator} TID:[-1234] [] [2020-06-02 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.DynamicAxisOperation $ DynamicOperationClient.executeImpl(DynamicAxisOperation.java:116) 在 org.apache.axis2.client.OperationClient.execute(OperationClient.java:149) 在 org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleMEPClient.java:603) 在 org.apache.synapse.core.axis2.Axis2Sender.sendOn(Axis2Sender.java:85) 在 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.IndirectEndpoint.send(IndirectEndpoint.java:55) 在 org.apache.synapse.mediators.builtin.SendMediator.mediate(SendMediator.java:123) 在 org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:108) 在 org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:70) 在 org.apache.synapse.mediators.filters.FilterMediator.mediate(FilterMediator.java:169) 在 org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:108) 在 org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:70) 在 org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:158) 在org.apache.synapse.rest.Resource.process(Resource.java:351)处 org.apache.synapse.rest.API.process(API.java:399)位于 org.apache.synapse.rest.RESTRequestHandler.apiProcessNonDefaultStrategy(RESTRequestHandler.java:149) 在 org.apache.synapse.rest.RESTRequestHandler.dispatchToAPI(RESTRequestHandler.java:95) 在 org.apache.synapse.rest.RESTRequestHandler.process(RESTRequestHandler.java:71) 在 org.apache.synapse.core.axis2.Axis2SynapseEnvironment.injectMessage(Axis2SynapseEnvironment.java:303) 在 org.apache.synapse.core.axis2.SynapseMessageReceiver.receive(SynapseMessageReceiver.java:92) 在org.apache.axis2.engine.AxisEngine.receive(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 $ 1.run(NativeWorkerPool.java:172) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在 java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624) 在java.lang.Thread.run(Thread.java:748)*

wso2 wso2-am
1个回答
2
投票

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

<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>
© www.soinside.com 2019 - 2024. All rights reserved.