Hi,
ich versuche eine JRuby on Rails Anwendung auf einem Glassfish zum Laufen zu kriegen (kein Glassfish Gem!).
Damit dem Glassfish bekannt ist, wo die JRuby Installation ist, habe ich folgende Wege probiert:
1. Eintrag in den JVM-Settings des Servers
-Djruby_home=C:\Programme\JRuby\jruby-1.4.1
2. Eintrag in die Datei asenv.bat des Servers (liegt unter Glassfishv3\glassfish\domains\domain1\config).
Jeweils den Server neugestartet und die Anwendung gelauncht.
Die JRuby-Installation hat alle benötigten Gems.
Die Anwendung ist eine mittels Warbler erstellte WAR Anwendung.
Die web.xml der Anwendung hat folgenden Aufbau:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app>
<context-param> <param-name>rails.env</param-name> <param-value>production</param-value> </context-param>
<context-param> <param-name>public.root</param-name> <param-value>/</param-value> </context-param>
<filter> <filter-name>RackFilter</filter-name> <filter-class>org.jruby.rack.RackFilter</filter-class> </filter> <filter-mapping> <filter-name>RackFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
<listener> <listener-class>org.jruby.rack.rails.RailsServletContextListener</listener-class> </listener>
</web-app>
|
Wenn ich die Anwendung dann launche, bekomme ich in der Logfile vom Glassfish immer die Fehlermeldung, dass der activerecord-jdbc-adapter fehlt, obwohl er installiert ist.
Die Anwendung beinhaltet eine Datenbankverbindung auf eine HOST DB2, welche im Test über eine Direktverbindung über TCP/IP auch funktioniert.
Im Glassfish soll die Anwendung natürlich über JNDI gehen, dafür habe ich folgenden Eintrag in der database.yml gemacht:
test:
adapter: jdbc
jndi: jdbc/services
Hier ein Auszug aus der Logfile des Glassfish:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
[#|2010-07-20T14:07:08.744+0200|SEVERE|glassfishv3.0|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=29;_ThreadName=Thread-1;|WebModule[/KundenMatching]Application Error org.jruby.rack.RackInitializationException: Please install the jdbc adapter: `gem install activerecord-jdbc-adapter` (no such file to load -- active_record/connection_adapters/jdbc_adapter) from D:/InstallationsSW/Glassfishv3/glassfish/domains/domain1/applications/KundenMatching/WEB-INF/gems/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_specification.rb:60:in `establish_connection' from D:/InstallationsSW/Glassfishv3/glassfish/domains/domain1/applications/KundenMatching/WEB-INF/gems/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/connection_specification.rb:55:in `establish_connection' from D:/InstallationsSW/Glassfishv3/glassfish/domains/domain1/applications/KundenMatching/WEB-INF/gems/gems/rails-2.3.5/lib/initializer.rb:438:in `initialize_database' from D:/InstallationsSW/Glassfishv3/glassfish/domains/domain1/applications/KundenMatching/WEB-INF/gems/gems/rails-2.3.5/lib/initializer.rb:141:in `process' from D:/InstallationsSW/Glassfishv3/glassfish/domains/domain1/applications/KundenMatching/WEB-INF/gems/gems/rails-2.3.5/lib/initializer.rb:113:in `run' from D:/InstallationsSW/Glassfishv3/glassfish/domains/domain1/applications/KundenMatching/WEB-INF/config/environment.rb:9 from D:/InstallationsSW/Glassfishv3/glassfish/domains/domain1/applications/KundenMatching/WEB-INF/config/environment.rb:44:in `load' from /D:/InstallationsSW/Glassfishv3/glassfish/domains/domain1/generated/jsp/KundenMatching/loader_1789167/jruby/rack/rails.rb:44:in `load_environment' from /D:/InstallationsSW/Glassfishv3/glassfish/domains/domain1/generated/jsp/KundenMatching/loader_1789167/jruby/rack/rails.rb:38:in `to_app' from /D:/InstallationsSW/Glassfishv3/glassfish/domains/domain1/generated/jsp/KundenMatching/loader_1789167/jruby/rack/rails.rb:186:in `new' from <script>:2 from /D:/InstallationsSW/Glassfishv3/glassfish/domains/domain1/generated/jsp/KundenMatching/loader_1789167/vendor/rack-1.1.0/rack/builder.rb:46:in `instance_eval' from /D:/InstallationsSW/Glassfishv3/glassfish/domains/domain1/generated/jsp/KundenMatching/loader_1789167/vendor/rack-1.1.0/rack/builder.rb:46:in `initialize' from <script>:2:in `new' from <script>:2 |
Welche Angaben muss ich machen damit der Glassfish Server die JRuby Installation findet???
Danke!