2011-02-02 14 views
4

私は最近1.9.2 Rubyにアップグレードしました.1.8.7を永遠に使用していました(私はRails 3を試したがっていました)。 (見て動作していないRuby 1.9.2でSOAPとその他の標準ライブラリを使用する

require 'soap/rpc/driver' 
require 'xsd/qname' 
require 'soap/wsdlDriver' 
require 'ftools' 

でもftoolsが、私は思う:

私がいる最大の問題は、私のSOAPのどれもが、文が動作している必要はないということです...私はのようなものを持っていますRubyソース)これは 'fileutils'になったのですか?しかし、私はSOAPのために類似したものを見ません.....それはちょうど削除されましたか?

もしそうなら...どうすればよいですか?基本的に同じことを行うプラグインはありますか?

私のコードは次のようである:

require 'soap/wsdlDriver' 
    def send_package 
    adi_url = "ftp://anonymous:[email protected]#{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 /ドライバがいずれかであるかさえわかりません違うのです...私は当時、2つの別々の図書館を使用する正当な理由があったと思いますか?

答えて

5

あなたはルビー1.8の標準SOAPライブラリ(別名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 

あなたが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 

StackOverflow answersによって示唆されるように、あなたはサボンのような宝石に切り替えることもできます。

+0

ルビー1.9と私の石鹸関連の問題のほとんどを解決しました。 Rootは通常のRVM設定では "rvm"コマンドを持っていません。 "rvm"コマンドはユーザーの '〜/ .rvm'サンドボックスに分離されます。また、システム全体のRVMインストールでない限り、root特権や[sudoは絶対に使用しない](http://rvm.beginrescueend.com/rubies/rubygems/)。だから軽く踏みつく。 –

+0

ありがとうございます。これは私にとって非常に便利です。 – vinothini

1

あなたがレールをしようとしている場合は、あなたの宝石のファイルが

宝石 'SOAP4R' でアップデート3:gitの=> 'のgit://github.com/felipec/soap4r.git'

これが更新されます修正あり。

関連する問題