Ruby on rails 在Rails上使用嵌入式Derby和JRuby

Ruby on rails 在Rails上使用嵌入式Derby和JRuby,ruby-on-rails,jruby,derby,Ruby On Rails,Jruby,Derby,正在尝试将JRuby 1.2.0和Rails 2.3.2与嵌入式Derby数据库一起使用。我已经将derbytools.jar和derby.jar复制到$RUBY\u HOME/lib,但是rake db:migrate仍然提供: The driver encountered an error: cannot load Java class org.apache.derby.jdbc.ClientDriver 啊,还有。。。我凭直觉想出来了。所以,我会把这个贴在这里,以防其他人遇到和

正在尝试将JRuby 1.2.0和Rails 2.3.2与嵌入式Derby数据库一起使用。我已经将
derbytools.jar
derby.jar
复制到
$RUBY\u HOME/lib
,但是
rake db:migrate
仍然提供:

The driver encountered an error: 
    cannot load Java class org.apache.derby.jdbc.ClientDriver
啊,还有。。。我凭直觉想出来了。所以,我会把这个贴在这里,以防其他人遇到和我一样的问题

我在网上找到的几乎所有文档都有以下Derby的
数据库.yml
配置:

development:
    adapter: jdbc
    driver: org.apache.derby.jdbc.ClientDriver
    url: jdbc:derby:[db];create=true
    username: xxx
    password: xxx
这对于客户机/服务器设置可能很好,但对于嵌入式Derby设置,您需要:

development:
    adapter: jdbc
    driver: org.apache.derby.jdbc.EmbeddedDriver
    url: jdbc:derby:[db];create=true
    username: xxx
    password: xxx

请注意“EmbeddedDriver”,而不是“ClientDriver”。

将回答这个问题,因为我讨厌在我的个人资料中看到那个红色块


当您使用嵌入式derby时,ActiveRecord JDBC中还有一个微妙的错误——如果您不给它一个用户名和密码,那么什么都不起作用。我已经找到了这个错误的原因,正在提交一个补丁,但是如果你遇到了和我一样的问题,请告诉我,我会在这里发布代码。

奇怪,它对我来说很好,在我的ubuntu 9.04框中: 我只使用标准的ubuntu软件包,我的DB配置是:

development:
 adapter: jdbc
 driver: org.apache.derby.jdbc.EmbeddedDriver
 url: jdbc:derby:[myapp];create=true

ClientDriver在derbyclient.jar中

继Don的回答之后,我在使用没有用户名/密码的ClientDriver时遇到了这个错误:
驱动程序遇到了一个错误:java.sql.SQLNonTransientConnectionException:密码长度(0)超出了1到255的范围。

在database.yml中设置用户名/密码修复了该问题