问题描述
我正在尝试使用Dataservice端点调用API。这是API的顺序。
<?xml version="1.0" encoding="UTF-8"?>
<sequence name="atms-v1-getATMInfo-in-sequence" xmlns="http://ws.apache.org/ns/synapse">
<property name="SEQ_NAME" scope="default" type="STRING" value="atms_v1_getATMInfo_inSeq"/>
<property action="remove" name="TRANSPORT_HEADERS" scope="axis2"/>
<header name="Accept" scope="transport" value="application/json"/>
<log level="full"/>
<call>
<endpoint name="AtmInfoEndPoint">
<address uri="https://127.0.0.1:8243/services/atmService"/>
</endpoint>
</call>
</response>
</sequence>
[2020-09-17 07:22:58,565] ERROR {org.apache.synapse.transport.passthru.ServerWorker} - Error processing GET request for : /services/atmService/atms org.apache.axis2.AxisFault: The endpoint reference (EPR) for the Operation not found is /services/atmService/atms and the WSA Action = null. If this EPR was prevIoUsly reachable,please contact the server administrator.
at org.apache.axis2.engine.dispatchPhase.checkPostConditions(dispatchPhase.java:102)
at org.apache.axis2.engine.Phase.invoke(Phase.java:329)
at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:261)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:167)
at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:368)
at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:189)
at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
我查看了一些文档,但找不到答案。请有人,让我知道如何解决此问题。谢谢。
解决方法
您必须在调用端点之前设置soap 操作。肥皂动作应该是数据服务的操作名称:
<property name="SOAPAction" scope="transport" value="urn:op_name"/>