Как установить расположение службы SOAP во Flex? - PullRequest
0 голосов
/ 08 апреля 2011

Я успешно сгенерировал прокси-серверы веб-службы с помощью меню FlexBuilder.Этот конкретный веб-сервис имеет внутреннее (или неправильное) «местоположение», указанное в его WSDL.Это означает, что когда я выполняю фактический вызов метода, он завершается неудачно, потому что имя DNS, указанное в поле местоположения, неверно.(В сообщении об ошибке отображается как «прервано»).

Как установить атрибут местоположения для объекта службы?Я делал это в Java и php раньше, но не могу понять, как это сделать во Flex.


update:

Поле, которое необходимо изменить, указано ниже.Это называется «WSDL-конечная точка».Итак, вопрос в том, как мне сделать это программно, учитывая сгенерированный объект веб-сервиса (тот, который расширяет WebServiceWrapper)?

<annotation name="ServiceConfig">
  <item name="DEFAULT_ENTITY_PACKAGE">valueObjects</item>
  <item name="WSDL-endpoint">http://eoc7/eoc7/api.asmx</item>
  <item name="LINKED_FILE"></item>
</annotation>

Ответы [ 3 ]

1 голос
/ 08 апреля 2011

Вот способ программно установить «местоположение» веб-службы в службе Flex SOAP:

Перейти к сгенерированному классу службы и установить это свойство в объекте управления _service:

_serviceControl.endpointURI = "http://uri-to-real-location"

Итак, я создал простой метод для установки этого извне класса:

public function setEndpointUri(uri : String) : void 
{
    _serviceControl.endpointURI = uri;
}
1 голос
/ 08 апреля 2011

Flash Builder сохраняет адрес веб-службы в файле .fml в подкаталоге .model вашего проекта flex.Вы можете отредактировать этот файл, а затем снова открыть проект.Но самый простой способ - удалить данные / службы и восстановить их с помощью мастера.

0 голосов
/ 15 августа 2013

Это единственный способ заставить его работать в сгенерированном заглушке для вашего сервиса:

import com.adobe.fiber.core.model_internal;

Также:

    /**
 * Override super.init() to provide any initialization customization if needed.
 */
protected override function preInitializeService():void
{           
    _needWSDLLoad = false; // to prevent loading the default WSDL
    super.preInitializeService();
    // Initialization customization goes here
    wsdl = "http://localhost/yourservice?wsdl";
    _needWSDLLoad = true;
    model_internal::loadWSDLIfNecessary();  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...