Использование WCF WsHttpBinding WebService в Java
Я пытаюсь заставить Java-клиент взаимодействовать с WCF wshttpbinding WebService. Но я не могу этого сделать. Звонок либо зависает, либо я получаю "задумчивые предсказания".
Моя веб-служба - это стандартная Visual Studio, созданная "Шаблон библиотеки служб WCF".
Мой клиент веб-службы - это просто пустой проект IntelliJ, с соответствующим заглушкой, сгенерированным с помощью "Добавить клиента веб-службы" (указанная платформа веб-сервиса - JAX-WS 2.X).
Когда я меняю привязку к BasicHttpBinding, все работает безупречно.
Я пробовал играть с настройкой WsHttpBinding, в том числе отключать безопасность, но я не имел успеха.
Предложения? Мысли? Является ли WsHttpBinding частично поддерживаемой JAX-WS 2.0?
Ответы
Ответ 1
Ваша проблема в том, что JAX-WS не поддерживает те же протоколы WS, которые используются в wsHttpBinding. Вместо этого вы должны использовать WSIT. WSIT доступен как часть библиотеки Metro, которая также доступна на Glassfish.
Я рекомендую использовать wsHttpBinding или ws2007HttpBinding, где это возможно, но вы все равно можете сделать довольно безопасный сервис с basicHttpBinding через SSL/Transport Auth.
Ответ 2
Я бы тщательно рассмотрел вашу конфигурацию WCF и удалил все свойства аутентификации, авторизации и т.д.. Помните, что по умолчанию WCF будет безопасно защищать ваш сервис при использовании безопасного транспорта/привязки. Поэтому, если вы не настроите свой Java-клиент на соблюдение этих требований безопасности, он скорее всего не сможет выполнить аутентификацию, и вы не увидите двух обратных.
После того, как вы поговорите с вами, постепенно работайте с добавлением каждого элемента безопасности до тех пор, пока ваш Java-клиент не будет правильно конфигирован.