Клиент WebServices - Динамический прокси или заглушки, созданные с помощью wconsume - PullRequest
2 голосов
/ 30 июня 2011

Я создал веб-сервис, используя JaxWs. Я верю, что существуют два способа использования веб-службы в клиенте.

  1. с помощью wconsume e помещает сгенерированные классы в качестве заглушек в клиент.
  2. с использованием динамического прокси, что означает, что не будет файлов для отправки клиенту в качестве заглушек.

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

Тогда у меня два вопроса:

  1. В чем разница между заглушками и Dynamic Proxy tecnich?
  2. Почему клиенту .Net не нужны файлы прокси? Или есть файлы, созданные автоматически, и я не знаю, где найти? Я теряю производительность или безопасность при использовании заглушек по сравнению с динамическим прокси?

1 Ответ

3 голосов
/ 01 июля 2011

1.В чем разница между заглушками и динамическим прокси-сервером?

JAX-RPC устарел.
Новый стандарт - JAX-WS.
JAX-WS позволяет программистам вызывать веб-службу, как если бы они выполняли локальный вызов метода.
Для этого определено стандартное отображение из WSDL в Java.
Это отображение соотносит определение wsdl:port с Java Interface, который называется интерфейсом конечной точки службы (SEI).
SEI является представлением Java конечной точки веб-службы.
Во время выполнения JAX-WS создает экземпляр SEI, который можно использовать для выполнения вызовов веб-службы, просто совершая вызовы методов в SEI.
Теперьспособ создания экземпляра SEI - через динамический прокси-класс.
Он называется динамическим прокси, поскольку он создается динамически.
Нет необходимости в заглушках для реализации прокси, но SEI уже должен был бытьреализован для использования.
Прокси-сервер использует / основан на классах заглушек для работы, которые были сгенерированы WSDL.
Таким образом, заглушки являются преequisite.
Таким образом, нет разделения методов, как вы говорите в своем посте.
Вы неправильно поняли концепцию

...