У меня есть клиент службы, созданный из wsdl. Я пытаюсь вызвать удаленный сервис, и я получаю ошибку инициатора канала, как показано ниже. Я пробовал множество решений без успеха.
Я нашел решения (старые сообщения), которые рекомендуют использовать расширения http-jetty. Я не верю, что это имеет смысл для меня, потому что сервер не работает локально.
Я также обнаружил, что самая близкая конфигурация, которая мне помогает, - это пример файла cxf.xml, который содержит:
<bean class="org.apache.cxf.transport.local.LocalTransportFactory"
lazy-init="false">
<property name="transportIds">
<list>
<value>http://cxf.apache.org/transports/local</value>
<value>http://cxf.apache.org/transports/http</value>
<value>http://schemas.xmlsoap.org/soap/http</value>
<value>http://schemas.xmlsoap.org/wsdl/soap/http</value>
</list>
</property>
</bean>
В этой конфигурации содержатся рекомендации по настройке транспорта factory и привязка его к http://schemas.xmlsoap.org/soap/http. Когда я пытаюсь сделать это с помощью HTTPTransportFactory, я получаю исключение, которое не может быть инициализировано (нет такой ошибки метода).
Caused by: org.apache.cxf.BusException: No conduit initiator was found for the namespace http://schemas.xmlsoap.org/soap/http.
at org.apache.cxf.transport.ConduitInitiatorManagerImpl.getConduitInitiator(ConduitInitiatorManagerImpl.java:112)
at org.apache.cxf.endpoint.AbstractConduitSelector.getSelectedConduit(AbstractConduitSelector.java:73)
at org.apache.cxf.endpoint.UpfrontConduitSelector.prepare(UpfrontConduitSelector.java:61)
at org.apache.cxf.endpoint.ClientImpl.prepareConduitSelector(ClientImpl.java:708)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:476)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:309)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:261)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:127)
меры предосторожности:. В этот момент я остановлю попытку обновить свой клиент CXF до версии 2.4.2 и вернусь к самой старой версии, которая работает (серия 2.2). Это не идеально.
Я хотел бы перейти к обновлению. Любые предложения относительно того, как настроить CXF 2.4.X, чтобы правильно настроить мои проводки конфигурации HTTP-SOAP только для клиента, было бы гораздо лучше.