Использование WCF WsHttpBinding WebService в Java - PullRequest
11 голосов
/ 16 июля 2009

Я пытаюсь заставить клиент Java взаимодействовать с wshttpbinding WebService WCF. Но я не могу этого сделать. Звонок либо зависает, либо я получаю "expuntions musunderstoodheader".

Моя веб-служба - это просто сгенерированный по умолчанию Visual Studio «Шаблон библиотеки служб WCF».

Мой клиент веб-службы - это просто пустой проект IntelliJ с соответствующей заглушкой, созданной с помощью «Добавить клиент веб-службы» (указана платформа веб-службы JAX-WS 2.X).

Когда я меняю привязку на BasicHttpBinding, все работает безупречно.

Я пытался поиграть с конфигурацией WsHttpBinding, включая отключение защиты, но безуспешно.

Предложения? Мысли? WsHttpBinding только частично поддерживается JAX-WS 2.0?

Ответы [ 2 ]

14 голосов
/ 29 января 2010

Ваша проблема в том, что JAX-WS не поддерживает те же протоколы WS, которые используются в wsHttpBinding. Вам нужно использовать WSIT . WSIT доступен как часть библиотеки Metro , которая также доступна для Glassfish .

Я рекомендую по возможности использовать wsHttpBinding или ws2007HttpBinding, но вы все равно можете сделать довольно безопасный сервис с basicHttpBinding через SSL / Transport Auth.

0 голосов
/ 17 июля 2009

Я бы внимательно изучил ваш конфиг WCF и удалил все свойства аутентификации, авторизации и т. Д. Помните, что по умолчанию WCF будет защищать ваш сервис при использовании безопасного транспорта / привязки. Поэтому, если вы не сконфигурируете свой Java-клиент для удовлетворения этих требований безопасности, он, скорее всего, не сможет пройти аутентификацию, и вы не увидите двух противоположных.

Как только вы поговорите, постепенно добавьте каждый элемент безопасности, пока клиент Java не будет правильно сконфигурирован.

...