I'm trying to embed HSQL into an application written in JRuby using
Sequel, but I'm not having much luck. My first question is should I
be able to do this? And if so, why isn't the driver being found when
I'm explicitly requiring it?
This simple code...
require 'sequel'
require 'C:/sw/hsqldb/lib/hsqldb.jar'
$transientdb = Sequel.connect('jdbc:hsqldb:mem:testmem') if
$transientdb == nil
$permanentdb = Sequel.connect('jdbc:hsqldb:file:testfile') if
$permanentdb == nil
puts $transientdb.inspect
puts $permanentdb.inspect
class Call < Sequel::Model($transientdb[:calls])
set_schema do
primary_key :id
varchar :name
end
end
Results in this output...
#<Sequel::JDBC::Database: "jdbc:hsqldb:mem:testmem">
#<Sequel::JDBC::Database: "jdbc:hsqldb:file:testfile">
java/sql/DriverManager.java:602:in `getConnection':
java.sql.SQLException: No suitable driver found for
jdbc:hsqldb:mem:testmem (NativeException)
from java/sql/DriverManager.java:207:in `getConnection'
from sun/reflect/NativeMethodAccessorImpl.java:-2:in `invoke0'
from sun/reflect/NativeMethodAccessorImpl.java:39:in `invoke'
from sun/reflect/DelegatingMethodAccessorImpl.java:25:in `invoke'
from java/lang/reflect/Method.java:597:in `invoke'
from org/jruby/javasupport/JavaMethod.java:298:in
`invokeWithExceptionHandling'
from org/jruby/javasupport/JavaMethod.java:278:in `invoke_static'
from org/jruby/java/invokers/StaticMethodInvoker.java:47:in `call'
... 148 levels...
from C:/Program Files/NetBeans 6.5/ruby2/jruby-1.1.4/lib/ruby/gems/
1.8/gems/rake-0.8.3/lib/rake/rake_test_loader.rb:5
from C:/Program Files/NetBeans 6.5/ruby2/jruby-1.1.4/lib/ruby/gems/
1.8/gems/rake-0.8.3/lib/rake/rake_test_loader.rb:5:in `each'
from C:/Program Files/NetBeans 6.5/ruby2/jruby-1.1.4/lib/ruby/gems/
1.8/gems/rake-0.8.3/lib/rake/rake_test_loader.rb:5
Complete Java stackTrace
java.sql.SQLException: No suitable driver found for
jdbc:hsqldb:mem:testmem
at java.sql.DriverManager.getConnection(DriverManager.java:602)
at java.sql.DriverManager.getConnection(DriverManager.java:207)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jruby.javasupport.JavaMethod.invokeWithExceptionHandling
(JavaMethod.java:298)
at org.jruby.javasupport.JavaMethod.invoke_static(JavaMethod.java:
278)
at org.jruby.java.invokers.StaticMethodInvoker.call
(StaticMethodInvoker.java:47)
at org.jruby.runtime.CallSite$InlineCachingCallSite.call
(CallSite.java:391)
at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall
(DefaultMethod.java:163)
at org.jruby.internal.runtime.methods.DefaultMethod.call
(DefaultMethod.java:140)
at org.jruby.internal.runtime.methods.DefaultMethod.call
(DefaultMethod.java:253)
at org.jruby.runtime.CallSite$InlineCachingCallSite.call
(CallSite.java:391)
at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.runtime.InterpretedBlock.evalBlockBody
(InterpretedBlock.java:202)
at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:
190)
at org.jruby.runtime.BlockBody.call(BlockBody.java:64)
at org.jruby.runtime.Block.call(Block.java:101)
at org.jruby.RubyProc.call(RubyProc.java:200)
at org.jruby.RubyProc.call(RubyProc.java:187)
at org.jruby.RubyProc$i_method_0_0$RUBYFRAMEDINVOKER$call.call(org/
jruby/RubyProc$i_method_0_0$RUBYFRAMEDINVOKER$call.gen)
at org.jruby.internal.runtime.methods.JavaMethod
$JavaMethodNoBlock.call(JavaMethod.java:62)
at org.jruby.internal.runtime.methods.DynamicMethod.call
(DynamicMethod.java:242)
at org.jruby.internal.runtime.methods.DynamicMethod.call
(DynamicMethod.java:151)
at org.jruby.runtime.CallSite$InlineCachingCallSite.call
(CallSite.java:391)
at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57)
at org.jruby.ast.IfNode.interpret(IfNode.java:108)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
at org.jruby.ast.IfNode.interpret(IfNode.java:108)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall
(DefaultMethod.java:163)
at org.jruby.internal.runtime.methods.DefaultMethod.call
(DefaultMethod.java:140)
at org.jruby.internal.runtime.methods.DefaultMethod.call
(DefaultMethod.java:253)
at org.jruby.runtime.CallSite$InlineCachingCallSite.call
(CallSite.java:391)
at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
at org.jruby.ast.OrNode.interpret(OrNode.java:94)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall
(DefaultMethod.java:163)
at org.jruby.internal.runtime.methods.DefaultMethod.call
(DefaultMethod.java:140)
at org.jruby.internal.runtime.methods.DefaultMethod.call
(DefaultMethod.java:253)
at org.jruby.runtime.CallSite$InlineCachingCallSite.call
(CallSite.java:391)
at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
at org.jruby.ast.DAsgnNode.interpret(DAsgnNode.java:107)
at org.jruby.ast.IfNode.interpret(IfNode.java:103)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.runtime.InterpretedBlock.evalBlockBody
(InterpretedBlock.java:202)
at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:
153)
at org.jruby.runtime.Block.yield(Block.java:105)
at org.jruby.libraries.ThreadLibrary$Mutex.synchronize
(ThreadLibrary.java:159)
at org.jruby.libraries.ThreadLibrary$Mutex$i_method_0_0$RUBYINVOKER
$synchronize.call(org/jruby/libraries/ThreadLibrary$Mutex
$i_method_0_0$RUBYINVOKER$synchronize.gen)
at org.jruby.runtime.CallSite$InlineCachingCallSite.call
(CallSite.java:352)
at org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:
63)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall
(DefaultMethod.java:163)
at org.jruby.internal.runtime.methods.DefaultMethod.call
(DefaultMethod.java:140)
at org.jruby.internal.runtime.methods.DefaultMethod.call
(DefaultMethod.java:295)
at org.jruby.runtime.CallSite$InlineCachingCallSite.call
(CallSite.java:442)
at org.jruby.ast.FCallTwoArgNode.interpret(FCallTwoArgNode.java:38)
at org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:115)
at org.jruby.ast.UntilNode.interpret(UntilNode.java:113)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
at org.jruby.ast.RescueNode.executeBody(RescueNode.java:222)
at org.jruby.ast.RescueNode.interpretWithJavaExceptions
(RescueNode.java:144)
at org.jruby.ast.RescueNode.interpret(RescueNode.java:107)
at org.jruby.ast.BeginNode.interpret(BeginNode.java:80)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall
(DefaultMethod.java:163)
at org.jruby.internal.runtime.methods.DefaultMethod.call
(DefaultMethod.java:140)
at org.jruby.internal.runtime.methods.DefaultMethod.call
(DefaultMethod.java:274)
at org.jruby.runtime.CallSite$InlineCachingCallSite.call
(CallSite.java:403)
at org.jruby.ast.CallOneArgBlockPassNode.interpret
(CallOneArgBlockPassNode.java:60)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall
(DefaultMethod.java:163)
at org.jruby.internal.runtime.methods.DefaultMethod.call
(DefaultMethod.java:140)
at org.jruby.internal.runtime.methods.DefaultMethod.call
(DefaultMethod.java:274)
at org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall
(CallSite.java:168)
at org.jruby.runtime.CallSite$InlineCachingCallSite.callIter
(CallSite.java:425)
at org.jruby.ast.FCallOneArgBlockNode.interpret
(FCallOneArgBlockNode.java:33)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall
(DefaultMethod.java:163)
at org.jruby.internal.runtime.methods.DefaultMethod.call
(DefaultMethod.java:140)
at org.jruby.internal.runtime.methods.DefaultMethod.call
(DefaultMethod.java:232)
at org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall
(CallSite.java:144)
at org.jruby.runtime.CallSite$InlineCachingCallSite.call
(CallSite.java:355)
at org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:
63)
at org.jruby.ast.IfNode.interpret(IfNode.java:110)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
at org.jruby.evaluator.ASTInterpreter.evalClassDefinitionBody
(ASTInterpreter.java:225)
at org.jruby.ast.ClassNode.interpret(ClassNode.java:141)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
at org.jruby.ast.RootNode.interpret(RootNode.java:126)
at org.jruby.Ruby.loadFile(Ruby.java:2107)
at org.jruby.runtime.load.ExternalScript.load(ExternalScript.java:58)
at org.jruby.runtime.load.LoadService.smartLoad(LoadService.java:331)
at org.jruby.runtime.load.LoadService.require(LoadService.java:357)
at org.jruby.RubyKernel.require(RubyKernel.java:818)
at org.jruby.RubyKernel$s_method_1_0$RUBYFRAMEDINVOKER$require.call
(org/jruby/RubyKernel$s_method_1_0$RUBYFRAMEDINVOKER$require.gen)
at org.jruby.internal.runtime.methods.DynamicMethod.call
(DynamicMethod.java:151)
at org.jruby.internal.runtime.methods.AliasMethod.call
(AliasMethod.java:64)
at org.jruby.runtime.CallSite$InlineCachingCallSite.call
(CallSite.java:391)
at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.ast.RescueNode.executeBody(RescueNode.java:222)
at org.jruby.ast.RescueNode.interpretWithJavaExceptions
(RescueNode.java:144)
at org.jruby.ast.RescueNode.interpret(RescueNode.java:107)
at org.jruby.internal.runtime.methods.DefaultMethod.interpretedCall
(DefaultMethod.java:163)
at org.jruby.internal.runtime.methods.DefaultMethod.call
(DefaultMethod.java:140)
at org.jruby.internal.runtime.methods.DefaultMethod.call
(DefaultMethod.java:253)
at org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall
(CallSite.java:156)
at org.jruby.runtime.CallSite$InlineCachingCallSite.call
(CallSite.java:394)
at org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)
at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:101)
at org.jruby.ast.BlockNode.interpret(BlockNode.java:67)
at org.jruby.ast.RootNode.interpret(RootNode.java:126)
at org.jruby.Ruby.loadFile(Ruby.java:2107)
at org.jruby.runtime.load.ExternalScript.load(ExternalScript.java:58)
at org.jruby.runtime.load.LoadService.load(LoadService.java:221)
at org.jruby.RubyKernel.load(RubyKernel.java:830)
at org.jruby.RubyKernel$s_method_0_1$RUBYFRAMEDINVOKER$load.call(org/
jruby/RubyKernel$s_method_0_1$RUBYFRAMEDINVOKER$load.gen)
at org.jruby.internal.runtime.methods.DynamicMethod.call
(DynamicMethod.java:242)
at org.jruby.internal.runtime.methods.DynamicMethod.call
(DynamicMethod.java:151)
at org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall
(CallSite.java:156)
at org.jruby.runtime.CallSite$InlineCachingCallSite.call
(CallSite.java:394)
at
C_3a_.Program_20_Files.NetBeans_20_6_dot_5.ruby2.jruby_minus_1_dot_1_dot_4.lib.ruby.gems.
$1_dot_8.gems.rake_minus_0_dot_8_dot_3.lib.rake.rake_test_loader.block_0$RUBY
$__block__(rake_test_loader.rb:5)
at
C_3a_.Program_20_Files.NetBeans_20_6_dot_5.ruby2.jruby_minus_1_dot_1_dot_4.lib.ruby.gems.
$1_dot_8.gems.rake_minus_0_dot_8_dot_3.lib.rake.rake_test_loaderBlockCallback
$block_0$RUBY$__block__xx1.call(Unknown Source)
at org.jruby.runtime.CompiledBlock.yield(CompiledBlock.java:100)
at org.jruby.runtime.Block.yield(Block.java:105)
at org.jruby.RubyArray.each(RubyArray.java:1415)
at org.jruby.RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$each.call(org/
jruby/RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$each.gen)
at org.jruby.runtime.CallSite$InlineCachingCallSite.cacheAndCall
(CallSite.java:144)
at org.jruby.runtime.CallSite$InlineCachingCallSite.callIter
(CallSite.java:374)
at
C_3a_.Program_20_Files.NetBeans_20_6_dot_5.ruby2.jruby_minus_1_dot_1_dot_4.lib.ruby.gems.
$1_dot_8.gems.rake_minus_0_dot_8_dot_3.lib.rake.rake_test_loader.__file__
(rake_test_loader.rb:5)
at
C_3a_.Program_20_Files.NetBeans_20_6_dot_5.ruby2.jruby_minus_1_dot_1_dot_4.lib.ruby.gems.
$1_dot_8.gems.rake_minus_0_dot_8_dot_3.lib.rake.rake_test_loader.__file__
(rake_test_loader.rb)
at
C_3a_.Program_20_Files.NetBeans_20_6_dot_5.ruby2.jruby_minus_1_dot_1_dot_4.lib.ruby.gems.
$1_dot_8.gems.rake_minus_0_dot_8_dot_3.lib.rake.rake_test_loader.load
(rake_test_loader.rb)
at org.jruby.Ruby.runScript(Ruby.java:544)
at org.jruby.Ruby.runNormally(Ruby.java:457)
at org.jruby.Ruby.runFromMain(Ruby.java:330)
at org.jruby.Main.run(Main.java:214)
at org.jruby.Main.run(Main.java:100)
at org.jruby.Main.main(Main.java:84)
rake aborted!
Command failed with status (1): ["C:/Program Files/NetBeans 6.5/ruby2/
jruby...]
(See full trace by running task with --trace)
Finished in 0.0 seconds.
0 tests, 0 failures, 0 errors
Any advice appreciated!
Thanks,
Lee
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sequel-talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/sequel-talk?hl=en
-~----------~----~----~----~------~----~------~--~---