So, I recently upgraded to 1.9.2 Ruby, having used 1.8.7 for forever (I wanted to try out Rails 3).
所以,我最近升级到1.9.2 Ruby,永远使用1.8.7(我想尝试Rails 3)。
The BIGGEST problem I'm having is that none of my SOAP require statements are working...I have things like:
我遇到的最大问题是我的SOAP要求语句都没有工作......我有类似的东西:
require 'soap/rpc/driver'
require 'xsd/qname'
require 'soap/wsdlDriver'
require 'ftools'
Even ftools isn't working, but I THINK (look at the Ruby source) that this became 'fileutils'? But I don't see anything similar for SOAP.....has it just been removed?
即使是ftools也无法正常工作,但我认为(看看Ruby源代码)这成了'fileutils'?但我没有看到任何类似的SOAP .....它刚被删除?
If so...what should I do? Is there any plug ins that do essentially the same thing?
如果是这样......我该怎么办?是否有任何插件基本上做同样的事情?
My code is like:
我的代码是这样的:
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
I don't have much soap experience...and I'm not even sure how wsdlDriver and rpc/driver are any different...just that I probably had a good reason for using the two separate libraries at the time?
我没有太多的肥皂经验......我甚至不确定wsdlDriver和rpc / driver是如何有所不同的...只是我当时有充分的理由使用这两个独立的库?
3 个解决方案
#1
5
If you want to keep using Ruby 1.8's standard soap library (aka soap4r), you can try https://github.com/spox/soap4r-spox ...
如果你想继续使用Ruby 1.8的标准soap库(aka soap4r),你可以试试https://github.com/spox/soap4r-spox ...
wget --no-check-certificate https://github.com/spox/soap4r-spox/tarball/1.5.8.4
tar -xzf spox-soap4r-spox-1.5.8.4-0-g345a6cb.tar.gz
cd spox-soap4r-spox-345a6cb/
ruby setup.rb all
If you're using rvm, don't sudo the last command... instead su into root and rvm to ruby 1.9 so that setup.rb puts the files into the right place.
如果您正在使用rvm,请不要sudo最后一个命令...而是su到root和rvm到ruby 1.9,以便setup.rb将文件放到正确的位置。
$ irb
ruby-1.9.2-p0 > require 'soap/rpc/driver'
=> true
ruby-1.9.2-p0 > require 'xsd/qname'
=> false
ruby-1.9.2-p0 > require 'soap/wsdlDriver'
=> true
ruby-1.9.2-p0 > require 'fileutils'
=> true
As suggested by other * answers, you might want to switch to a gem like savon.
正如其他*答案所建议的那样,您可能希望切换到像savon这样的gem。
#2
8
https://rubygems.org/gems/soap4r-ruby1.9
https://rubygems.org/gems/soap4r-ruby1.9
gem install soap4r-ruby1.9
gem install soap4r-ruby1.9
This gem solved most of my soap related issues with ruby 1.9
这个宝石用ruby 1.9解决了我与肥皂相关的大部分问题
#3
1
if you are trying rails 3 update your gem file with
如果您正在尝试使用rails 3更新您的gem文件
gem 'soap4r', :git => 'git://github.com/felipec/soap4r.git'
gem'force4r',:git =>'git://github.com/felipec/soap4r.git'
this is updated with fix.
这是通过修复更新的。
#1
5
If you want to keep using Ruby 1.8's standard soap library (aka soap4r), you can try https://github.com/spox/soap4r-spox ...
如果你想继续使用Ruby 1.8的标准soap库(aka soap4r),你可以试试https://github.com/spox/soap4r-spox ...
wget --no-check-certificate https://github.com/spox/soap4r-spox/tarball/1.5.8.4
tar -xzf spox-soap4r-spox-1.5.8.4-0-g345a6cb.tar.gz
cd spox-soap4r-spox-345a6cb/
ruby setup.rb all
If you're using rvm, don't sudo the last command... instead su into root and rvm to ruby 1.9 so that setup.rb puts the files into the right place.
如果您正在使用rvm,请不要sudo最后一个命令...而是su到root和rvm到ruby 1.9,以便setup.rb将文件放到正确的位置。
$ irb
ruby-1.9.2-p0 > require 'soap/rpc/driver'
=> true
ruby-1.9.2-p0 > require 'xsd/qname'
=> false
ruby-1.9.2-p0 > require 'soap/wsdlDriver'
=> true
ruby-1.9.2-p0 > require 'fileutils'
=> true
As suggested by other * answers, you might want to switch to a gem like savon.
正如其他*答案所建议的那样,您可能希望切换到像savon这样的gem。
#2
8
https://rubygems.org/gems/soap4r-ruby1.9
https://rubygems.org/gems/soap4r-ruby1.9
gem install soap4r-ruby1.9
gem install soap4r-ruby1.9
This gem solved most of my soap related issues with ruby 1.9
这个宝石用ruby 1.9解决了我与肥皂相关的大部分问题
#3
1
if you are trying rails 3 update your gem file with
如果您正在尝试使用rails 3更新您的gem文件
gem 'soap4r', :git => 'git://github.com/felipec/soap4r.git'
gem'force4r',:git =>'git://github.com/felipec/soap4r.git'
this is updated with fix.
这是通过修复更新的。