因此,我最近升级到 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
and
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 有什么不同...只是我当时可能有充分的理由使用这两个单独的库?