Столкнулись недавно с проблемой, нужно было использовать ВЭБ Сервисы в AS 3.0, а там как известно их нет. Писать парсер самим не хотелось, вооружились гуглом. В результате после недолгих поисков нашли вот это. Попробовали использовать это с нашим Java-сервером. Наши WDSL документы генерировались с помощью X-Fire. После парсинга, не находились Вэб Сервис методы. В результате, наш Java-developer Владимир aka red, нашел ошибку в классе WDSL (WDSL.as). Достаточно заменить существующую функцию getBinding, той что пердставленна ниже, и все заработает.
ВНИМАНИЕ! Этот код проверялся с X-Fire сгенерированными WDLS документами, использование кода на ваш страх и риск.
private function getBinding(portType:String):String{
var wsdl:Namespace = __rawWSDL.namespace();
var service:XMLList = __rawWSDL.wsdl::service;
// var myPort:XMLList = service.wsdl::port.(@name == portType);
var binding:XMLList = __rawWSDL.wsdl::binding.(@type.substr(@type.indexOf(":")+1) == portType);
var addressNS:Namespace = service.wsdl::port.children()[0].namespace();
__servicePath = service.wsdl::port.addressNS::address.@location;
var bindingAmount:Number = binding.length();
if (bindingAmount == 1){
return (binding.@name);
} else if(bindingAmount >0 ) {
return binding[0].@name;
}
return("");
}