"java.sql.SQLException: invalid arguments in call" using Oracle config with JRoR

Hi, All, J. Ruby Newbie here.

I'm trying to get JRuby on Rails to start using Oracle, but I get "The driver encountered an error: java.sql.SQLException: invalid arguments in call". I've got the driver jar in the right place, because it can find OracleDriver.

The trace complains about:

C:/jruby/lib/ruby/gems/1.8/gems/ActiveRecord-JDBC-0.5/lib/ active_record/connection_adapters/jdbc_adapter.rb,

and by doing puts I find that Jdbc::DriverManager.getConnection(url, user, pass) throws an exception, and the rescue code jdbc_driver.create.connect(url, props) throws another exception.

My database.yml: ... development:   adapter: jdbc   driver: oracle.jdbc.driver.OracleDriver   url: jdbc:oracle:thin:@localhost:1521:orcl   user: rubydevel   password: rubydevel

I can create a connection with Java just dandy:

Class.forName("oracle.jdbc.driver.OracleDriver"); Connection dbConnection=DriverManager.getConnection(   "jdbc:oracle:thin:@localhost:1521:orcl","rubydevel","rubydevel");

I'm lost. Has anyone come across this?

Thanks,

Andrey

1 Like

Ok. This appears to be a failure of communication between database.yml and the jdbc_adapter.rb. jdbc_adapter expects the driver param to be named "username" while all the database.ymls expect the param name user:

def configure_jdbc   driver = @config[:driver].to_s   user = @config[:username].to_s   pass = @config[:password].to_s   url = @config[:url].to_s

Should this be the symbol :user? Is there a standard?