Итак, я недавно обновился до 1.9.2 Ruby, всегда использовал 1.8.7 (я хотел попробовать Rails 3).
Самая БОЛЬШАЯ проблема, с которой я сталкиваюсь, заключается в том, что ни один из моих операторов SOAP require не работает ... У меня есть такие вещи, как:
require 'soap/rpc/driver'
require 'xsd/qname'
require 'soap/wsdlDriver'
require 'ftools'
Даже ftools не работает, но я ДУМАЮ (посмотрите на источник Ruby), что это стало 'fileutils'? Но я не вижу ничего подобного для SOAP ..... это было только что удалено?
Если так ... что мне делать? Есть ли плагины, которые делают по сути то же самое?
Мой код похож на:
require 'soap/wsdlDriver'
def send_package
adi_url = "ftp://anonymous:ads123@#{APP_CONFIG['pcms_ip']}/#{self.id}/original/ADI.XML"
cl0 = SOAP::WSDLDriverFactory.new(APP_CONFIG['corba_bridge'])
driver = cl0.create_rpc_driver
driver.streamhandler.client.receive_timeout = 10
x = driver.exportPackage2(self.name+self.id.to_s, adi_url, "NS2.PackageFactory")
log x
if x.to_s =~ /ERROR/
raise x.to_s
end
end
и
require 'soap/rpc/driver'
require 'xsd/qname'
def get_self_offering_ids(wsdl, namespace)
ret = []
input = {"#{namespace}:includeAssetMetadata" => 'true'}
begin
driver = SOAP::RPC::Driver.new(wsdl, namespace)
driver.add_document_method('GetAllOfferingsRequest', "OpenStreamVOD#getAllOfferings", XSD::QName.new(namespace, "GetAllOfferingsRequest"), XSD::QName.new(namespace, "GetAllOfferingsResponse"))
result = driver.GetAllOfferingsRequest(input)
rescue => err
log err
end
if result
result.offering.each do |o|
if offeringIsSelf?(o)
ret << o.xmlattr_offeringId
end
end
end
return ret
end
У меня нет большого опыта работы с мылом ... и я даже не уверен, что wsdlDriver и rpc / driver отличаются друг от друга ... просто у меня, вероятно, была хорошая причина для использования двух отдельных библиотек