2009-07-16 5 views
11

Я пытаюсь заставить Java-клиент взаимодействовать с WCF wshttpbinding WebService. Но я не могу этого сделать. Звонок либо зависает, либо я получаю «задумчивые предсказания».Использование WCF WsHttpBinding WebService в Java

Мой веб-сервис - это стандартная Visual Studio, сгенерированная «Шаблон библиотеки служб WCF».

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

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

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

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

ответ

14

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

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

0

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

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

+0

Как уже говорилось, я уже отключил ВСЕ безопасность. – vicsz

Смежные вопросы