WSDualHttpBinding - клиент Java или SoapUI
Я боролся с этой проблемой больше недели. У меня есть сторонний веб-сервис WCF, который работает с WSDualHttpBinding. У меня есть файл wsdl от них, и я пытаюсь общаться. Я использовал:
- Метро, которое генерирует код Java. Я попробовал это, но это не сработало. Возникла проблема, например, {tempuri.org}//WebServiceName не является правильным именем. Список веб-сервисов:...
- SoapUI - я пытался общаться, и я получил 202 принятых. Я использовал wireshark, и кажется, что веб-сервис не может правильно обработать мыльный XML. Я не совсем уверен, поддерживает ли soapUI WSDualHttpBinding.
Я действительно ценю любые подсказки, статьи или решения.
1 ответ
Я не уверен, что двойное связывание совместимо с клиентами, кроме WCF. Однажды я прочитал, что стек Metro (WSIT) для Java поддерживает его. Но самым безопасным будет использование клиента WCF.
Причина в том, что двойное связывание предполагает, что клиент должен получать сообщения от сервера в конечной точке обратного вызова. Это не так стандартно, также с точки зрения правильного определения этого в файле WSDL. Вы можете обойтись без него, настроив выделенный сервер на стороне клиента в ожидании ответа WCF. Но проводка займет много времени.
Если у вас есть сервер, вы можете сделать более явным, что у клиента должна быть конечная точка сервера для получения обратных вызовов, или вы могли бы использовать некоторый маршрутизатор WCF в качестве промежуточного звена.
ОБНОВЛЕНИЕ: проверьте эту ссылку, чтобы узнать, почему WSDualHttpBinding не совместим с Java