У меня есть клиент службы, сгенерированный из wsdl. Я пытаюсь позвонить в удаленную службу и получаю ошибку инициатора канала, показанную ниже. Я безуспешно пробовал многочисленные решения.
Я нашел решения (старые сообщения), которые рекомендуют использовать расширения http-jetty . Я не верю, что это имеет смысл для меня, потому что сервер не работает локально.
Я также обнаружил, что ближайшая конфигурация, которая помогает мне, является примером cxf.xml файла, который содержит:
http://cxf.apache.org/transports/local
http://cxf.apache.org/transports/http
http://schemas.xmlsoap.org/soap/http
http://schemas.xmlsoap.org/wsdl/soap/http
Эта конфигурация содержит руководство по настройке транспортного завода и привязке его к 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). Это не идеально.
Я хотел бы продолжить обновление. Любые предложения по настройке 2.4.X CXF так, чтобы провода конфигурации HTTP SOAP, доступные только для клиента, были бы очень понятны.