Я пытаюсь использовать веб-сервис от верблюда, используя компонент cxf, например:
<cxf:cxfEndpoint id="webservice"
address="http://webservice.url.com/webservice"
serviceClass="com.url.webservice.MyWebService"/>
<camel:camelContext>
<camel:route>
<camel:from uri="direct:a"/>
<camel:inOnly uri="cxf:bean:webservice?defaultOperationName=sendMessage"/>
</camel:route>
</camel:camelContext>
Метод sendMessage
не имеет ответа, следовательно, inOnly
вместо to
(хотя у меня та же проблема, когда я пытаюсь to
вместо).Проблема в том, что, по-видимому, верблюд все еще ожидает ответа, и маршрут зависает, ожидая его.Я полагаю, что если я позволю этому попробовать достаточно долго, это в конечном итоге истечет.
Чтобы было ясно, я использую тестовый метод:
/* ... */
@Produce(uri = "direct:a")
protected ProducerTemplate directA;
@Test
public void sendMessage() throws Exception {
directA.sendBody(new String[] {"client id", "message"});
directB.sendBody(new String[] {"client id", "message 2"});
}
И я вижу эффектпервого вызова (т. е. сообщение поступает на сервер), но не второго, и метод не завершает работу (опять же, я предполагаю, что в какой-то момент он истечет ... если так,тайм-аут довольно длинный: я запустил тест, когда начал писать, и он все еще работает).
Я что-то упустил?Это ошибка?Это просто плохая практика иметь методы веб-сервиса без ответа?
Кстати, при тестировании методов, у которых есть ответ, он работает нормально.