Как изменить корневой узел wcf запрос \ ответ

Я звоню на веб-сервис Java, который пытаюсь вызвать из клиента WPF, используя шлюз и инспектор сообщений. Проблема, с которой я сталкиваюсь, заключается в том, что веб-сервису Java требуется корневой узел запроса xml в качестве элемента, однако мой запрос WCF (когда я проверяю его в MessageInspector-beforeSendRequest) содержит имя контракта операции в качестве корневого узла.

Можно ли как-нибудь удалить начальные и конечные узлы с именами операций из запроса и отправить запрос с начальным узлом напрямую.

Та же проблема возникает, когда я получаю ответ от Сервиса

Я только что присоединился к этому сообществу. И я попытался найти его. Но почему-то для меня нет указателей.

1 ответ

Решение

Стандарт мыла допускает различные стили XML-структуры мыльных конвертов. Microsoft по умолчанию использует стиль известный документ /literal/wrapped вместо document/literal. У них были свои причины, но это может затруднить интеграцию с определенными типами Java-сервисов.

Чтобы Java и WCF играли хорошо, вам может потребоваться вручную настроить клиентские классы WCF, чтобы они соответствовали стилю мыла document/literal. Хорошее описание проблемы есть в этой статье, а также в этой статье и здесь. То, насколько вам нужно изменить структуру клиентских классов WCF, сгенерированных SvcUtil, чтобы испускать правильно отформатированное мыло, будет зависеть от требований java-сервиса, но это должно помочь вам начать.

Другие вопросы по тегам