2015-04-11 3 views
1

Если я правильно понимаю, в WSDL документе, можно сказать, в простых условиях, что:WSDL и AXIS ADB

  • portype section: можно сравнить с интерфейсом в OO
    языка, и описывает работу предлагаемых службой.

  • binding section: определяет протоколы которым операция может быть доступна через
    (например, SMTP, HTTP и т.д.).

  • services section: указывает конечную точку для каждого из назначенных привязок.

Пожалуйста, исправьте меня, если я говорю что-то не так.

Если это правильно, когда мы создаем клиента с использованием интегрированных AXIS-инструментов AXIS ADB и Eclipse EE, зачем нам также указывать URL-адрес в качестве конечной точки службы при создании экземпляра заглушки?

MultiplierImplStub stub=newMultiplierImplStub("http://localhost:8080/ProductServer/services/MultiplierImpl"); 

Если не окурок, которым автоматически построен разбор WSDL службы, уже знаете, что конечные точки?

EDIT:

И почему конечная точка указана в клиенте не соответствует ни одному из конечных точек, определенных в WSDL?

<wsdl:service name="MultiplierImpl"> 
<wsdl:port name="MultiplierImplHttpSoap11Endpoint" binding="ns:MultiplierImplSoap11Binding"> 
<soap:address location="http://localhost:8080/AxisTestProjectServer/services/MultiplierImpl.MultiplierImplHttpSoap11Endpoint/"/> 
</wsdl:port> 
<wsdl:port name="MultiplierImplHttpSoap12Endpoint" binding="ns:MultiplierImplSoap12Binding"> 
<soap12:address location="http://localhost:8080/AxisTestProjectServer/services/MultiplierImpl.MultiplierImplHttpSoap12Endpoint/"/> 
</wsdl:port> 
<wsdl:port name="MultiplierImplHttpEndpoint" binding="ns:MultiplierImplHttpBinding"> 
<http:address location="http://localhost:8080/AxisTestProjectServer/services/MultiplierImpl.MultiplierImplHttpEndpoint/"/> 
</wsdl:port> 
</wsdl:service> 

ответ

1

Хороший вопрос! Этот заглушка знает, что конечные точки находятся в момент его генерации, но дальше по пути эти конечные точки могут измениться, и вы не хотите повторно перезаписывать заглушку и повторно развертывать ее, а просто изменять параметр конфигурации в ваше приложение. Регенерация заглушки во время выполнения с каждым вызовом службы тоже не очень хорошая идея, я уверен, вы согласитесь.

Наличие возможности поставки конечной точки удобно по нескольким причинам: иногда у вас нет активного доступа к веб-службе во время реализации, а WSDL используется в качестве взаимного соглашения между командами с обеих сторон до начала работы. Конечный URL-адрес может быть известен в это время. Кроме того, вам может потребоваться протестировать в другой среде до предпроизводства и производства - это может легко произойти с прикосновением к конфигурации, вместо того, чтобы иметь разные заглушки и другую логику в вашем приложении для каждой среды.

Конечная точка в WSDL отлично подходит для обнаружения веб-сервисов, когда служба уже находится в производстве, когда изменения конечной точки не ожидается. Это облегчает процесс новых клиентов, потребляющих веб-службу. Но даже тогда полезно рассматривать конечную точку как переменную из-за дополнительной гибкости на всякий случай.

+0

спасибо, см. Мое редактирование. – GionJh

+0

Я видел это, но я немного смущен. Разве вы не сказали, что задали этот URL? Если URL-адрес был автоматически заполнен для вас, возможно, у вас есть некорректная конфигурация. –

+0

Я сам задал этот URL в создании экземпляра, я тоже немного смущен. Я также отметил, что удаление этого URL-адреса не имеет значения, клиент всегда работает нормально. – GionJh

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