From: Brian Wallace Date: 2009-09-20T13:13:32+09:00 Subject: Re: Problem with soap4r+httpclient from within a jar. --0015176f0cf46aabb30473fa96f2 Content-Type: text/plain; charset=ISO-8859-1 Ok, I believe I've tracked this bug down a bit more (I'm still a newbie .. but a persistent one :) ) It appears as though the recently added JRuby "OpenSSL::X509::Store#add_file" method doesn't work with file URL's , which are obviously used when referencing files from within a jar. (See JRuby-3692 for the add_file patch). I've reproduced the issue in irb. I guess I should log a bug on JRuby's jira site ... since I couldn't write code in Java to save my life. On Sat, Sep 19, 2009 at 12:55 AM, Brian Wallace wrote: > Hi all, > > I'm attempting to package up my JRuby soap4r client application into a > jar, but I'm not having much luck getting it working. I've tried using both > rawr and Netbeans to build the jar but I get the same results. > > I have the soap4r and httpclient gems inside the jruby-complete.jar.. I put > the gems here: > > \META-INF\jruby.home\lib\ruby\gems\1.8\gems\httpclient-2.1.5.2\ > > The problem seems to be with the httpclient gem. Its failing when it reads > in the cacert.p7s file. I've verified that the file is there, and everything > works fine when its not running from a jar. I believe I can use "net/http" > as the client, but I'm hoping I wont have to. > > Has anyone successfully wrapped a soap4r client into a jar? See the stack > trace below ... > > file:/C:/Users/dev/Documents/NetBeansProjects/Java and > Ruby/dist/lib/jruby-c > > omplete.jar!/META-INF/jruby.home/lib/ruby/gems/1.8/gems/httpclient-2.1.5.2/lib/h > ttpclient/ssl_config.rb:149:in `set_trust_ca': file not found: > file:\C:\Users\ > dev\Documents\NetBeansProjects\Java and > Ruby\dist\lib\jruby-complete.jar!\META > > -INF\jruby.home\lib\ruby\gems\1.8\gems\httpclient-2.1.5.2\lib\httpclient\cacert. > p7s (The filename, directory name, or volume label syntax is incorrect) > (OpenSSL > ::X509::StoreError) > from file:/C:/Users/dev/Documents/NetBeansProjects/Java and > Ruby/dis > > t/lib/jruby-complete.jar!/META-INF/jruby.home/lib/ruby/gems/1.8/gems/httpclient- > 2.1.5.2/lib/httpclient/ssl_config.rb:353:in `load_cacerts' > from file:/C:/Users/dev/Documents/NetBeansProjects/Java and > Ruby/dis > > t/lib/jruby-complete.jar!/META-INF/jruby.home/lib/ruby/gems/1.8/gems/httpclient- > 2.1.5.2/lib/httpclient/ssl_config.rb:342:in `each' > from file:/C:/Users/dev/Documents/NetBeansProjects/Java and > Ruby/dis > > t/lib/jruby-complete.jar!/META-INF/jruby.home/lib/ruby/gems/1.8/gems/httpclient- > 2.1.5.2/lib/httpclient/ssl_config.rb:342:in `load_cacerts' > from file:/C:/Users/dev/Documents/NetBeansProjects/Java and > Ruby/dis > > t/lib/jruby-complete.jar!/META-INF/jruby.home/lib/ruby/gems/1.8/gems/httpclient- > 2.1.5.2/lib/httpclient/ssl_config.rb:85:in `initialize' > from file:/C:/Users/dev/Documents/NetBeansProjects/Java and > Ruby/dis > > t/lib/jruby-complete.jar!/META-INF/jruby.home/lib/ruby/gems/1.8/gems/httpclient- > 2.1.5.2/lib/httpclient.rb:353:in `initialize' > from file:/C:/Users/dev/Documents/NetBeansProjects/Java and > Ruby/dis > > t/lib/jruby-complete.jar!/META-INF/jruby.home/lib/ruby/gems/1.8/gems/soap4r-1.5. > 8/lib/wsdl/xmlSchema/importer.rb:66:in `fetch' > from file:/C:/Users/dev/Documents/NetBeansProjects/Java and > Ruby/dis > > t/lib/jruby-complete.jar!/META-INF/jruby.home/lib/ruby/gems/1.8/gems/soap4r-1.5. > 8/lib/wsdl/xmlSchema/importer.rb:36:in `import' > from file:/C:/Users/dev/Documents/NetBeansProjects/Java and > Ruby/dis > > t/lib/jruby-complete.jar!/META-INF/jruby.home/lib/ruby/gems/1.8/gems/soap4r-1.5. > 8/lib/wsdl/importer.rb:18:in `import' > from file:/C:/Users/dev/Documents/NetBeansProjects/Java and > Ruby/dis > > t/lib/jruby-complete.jar!/META-INF/jruby.home/lib/ruby/gems/1.8/gems/soap4r-1.5. > 8/lib/soap/wsdlDriver.rb:146:in `import' > from file:/C:/Users/dev/Documents/NetBeansProjects/Java and > Ruby/dis > > t/lib/jruby-complete.jar!/META-INF/jruby.home/lib/ruby/gems/1.8/gems/soap4r-1.5. > 8/lib/soap/wsdlDriver.rb:32:in `initialize' > from file:/C:/Users/dev/Documents/NetBeansProjects/Java and > Ruby/dis > t/Java_and_Ruby.jar!/scripts/ap.rb:58:in `get_wsdl' > from file:/C:/Users/dev/Documents/NetBeansProjects/Java and > Ruby/dis > t/Java_and_Ruby.jar!/scripts/ap.rb:331 > from file:/C:/Users/dev/Documents/NetBeansProjects/Java and > Ruby/dis > t/Java_and_Ruby.jar!/scripts/ap.rb:1:in `require' > from -e:1 > > Thanks, > > Brian > > --0015176f0cf46aabb30473fa96f2--