У меня есть пример прокси-службы TestService, которую я могу вызвать из другой прокси-службы, используя локальный транспортный адрес "local: /// services / TestService / mediate". Я использую WSO2 EI 6.5.0 и 6.6.0. Локальный транспорт настраивается с помощью этого - https://docs.wso2.com/display/ESB500/Local+Transport.
Но я получаю сообщение об ошибке при вводе локального URL-адреса в «URL-адресе события» (https://docs.wso2.com/display/EI650/Working+with+Topics+and+Events). Пробовал как local: /// services / TestService / mediate, так и local: /// services / TestService. Ошибка:
[2020-02-16 11:18:38,487] ERROR {org.apache.axis2.engine.AxisEngine} - The service cannot be found for the endpoint reference (EPR) local:///services/TestService/mediate org.apache.axis2.AxisFault: The service cannot be found for the endpoint reference (EPR) local:///services/TestService/mediate
at org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:78)
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.axis2.transport.local.LocalTransportReceiver.processMessage(LocalTransportReceiver.java:170)
at org.apache.axis2.transport.local.LocalTransportReceiver.processMessage(LocalTransportReceiver.java:82)
at org.apache.axis2.transport.local.LocalTransportSender.finalizeSendWithToAddress(LocalTransportSender.java:102)
at org.apache.axis2.transport.local.LocalTransportSender.invoke(LocalTransportSender.java:77)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442)
at org.apache.axis2.description.OutOnlyAxisOperationClient.executeImpl(OutOnlyAxisOperation.java:297)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:149)
at org.apache.axis2.client.ServiceClient.fireAndForget(ServiceClient.java:511)
at org.apache.axis2.client.ServiceClient.fireAndForget(ServiceClient.java:488)
at org.wso2.carbon.event.ws.internal.notify.WSEventDispatcher.sendNotification(WSEventDispatcher.java:97)
at org.wso2.carbon.event.ws.internal.notify.WSEventDispatcher.notify(WSEventDispatcher.java:67)
at org.wso2.carbon.event.core.internal.notify.CarbonNotificationManager.sendNotification(CarbonNotificationManager.java:63)
at org.wso2.carbon.event.core.internal.delivery.Worker.run(Worker.java:53)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Все работает правильно (вызывается TestService), если я указываю http-адрес в «URL-адресе события», поэтому это не должно быть проблемой для TestService или темы / подписки DSS как таковой.