HomePage RecentChanges Contattami Random Page Le mie foto Il mio Blog RSS feed

Netbeans, JRuby, Rails 2 e Derby

Dopo una serie di peripezie, sono finalmente riuscito a far funzionare questo malefico accrocchio. In questo articolo vi spiegherò come far funzionare Netbeans 6.0.1 con JRuby 1.1RC2, Rails 2.0.2 ed i driver per Apache Derby 10.3.2.1.

Se state usando Netbeans con JavaDB? o Derby e JRuby con Rails 2.x ed ottenete questo errore:

Exception in thread "main" java.lang.NoSuchMethodError: org.jruby.runtime.builtin.IRubyObject.setInstanceVariable [...]

allora questo breve tutorial fa per voi.

Per prima cosa sostituite quella schifezza di JRuby 1.0.2 che c’è insieme a NetBeans? con una versione più recente (e assicuratevi di aggiornare il link all’interprete nelle opzioni di NetBeans?!).

Una volta aggiornato il link all’interprete, dovrete reinstallare le varie GEM che avevate precedentemente installato nella directory di JRuby 1.0.2.

In particolare, installerete Rails 2.0.2, activerecord-jdbc-adapter 0.7.2, activerecord-jdbcderby-adapter 0.7.2 e vi assicurerete di non avere ActiveRecord?-JDBC 0.5 (che è una versione vecchia e non compatibile con JRuby 1.0.3+).

A questo punto dovreste avere nel database.yml qualcosa come

development:
   adapter: derby
   database: db/devel.db

Aprite anche il file environment.rb sempre in Configuration e cercate queste righe:


# Inserted by NetBeans Ruby support to support JRuby
if RUBY_PLATFORM =~ /java/
  require 'rubygems'
  gem 'ActiveRecord-JDBC'
  require 'jdbc_adapter'
end

Cancellatele!!! Altrimenti JRuby continuerà a chiedervi la vecchia versione del driver JDBC che non funziona con le nuove release di JRuby stesso.

Fatto questo, dovreste aver risolto i vostri problemi esistenziali.