I've gotten hibernate running under the jruby-complete jar, which
packages ASM such that classpath collision does not occur. Try running
the jar-complete ant task in your jruby directory then modify the
bin/jruby script to only slurp lib/jruby-complete.jar into the
classpath. I believe this happens around line 89 of the script. That
ought to do the trick. Don't forget to add your JDBC driver to the
classpath on your command line.
victori (JIRA) wrote:
Hibernate/Spring integration with JRuby broken due to ASM conflict
------------------------------------------------------------------
Key: JRUBY-978
URL: http://jira.codehaus.org/browse/JRUBY-978
Project: JRuby
Issue Type: Bug
Components: Core Classes/Modules
Affects Versions: JRuby 1.0.0RC2
Environment: OSX JVM Mustang / 1.6
Reporter: victori
Seems like hibernate uses ASM 1.5.3 and you guys upgraded to ASM 2.x. So now
there is a conflict and you can't call up Hibernate/Spring services from JRuby.
This is a complete show stopper for me.
Here is the trace w/ code which works correctly in 0.9.9 before the ASM
update(?)
Code:
require 'java'
@ctx =
org.springframework.context.support.FileSystemXmlApplicationContext.new("context.xml");
mdao = @ctx.getBean("mailboxDao")
mdao.all().each {|r| p r.username }
syris:~/Documents/workspace/service-jruby victori$ ~/jruby/bin/jruby main.rb
Exception in thread "main" java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.visit(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
at
org.jruby.compiler.impl.StandardASMCompiler.startScript(StandardASMCompiler.java:225)
at
org.jruby.internal.runtime.methods.DefaultMethod.runJIT(DefaultMethod.java:218)
at
org.jruby.internal.runtime.methods.DefaultMethod.internalCall(DefaultMethod.java:106)
at
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:79)
at org.jruby.RubyObject.callMethod(RubyObject.java:572)
at org.jruby.RubyObject.callMethod(RubyObject.java:450)
at org.jruby.RubyClass.newInstance(RubyClass.java:287)
at org.jruby.RubyClassInvokernewInstancexx1.call(Unknown Source)
at
org.jruby.runtime.callback.InvocationCallback.execute(InvocationCallback.java:49)
at
org.jruby.internal.runtime.methods.FullFunctionCallbackMethod.internalCall(FullFunctionCallbackMethod.java:79)
at
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:79)
at
org.jruby.evaluator.EvaluationState.callNode(EvaluationState.java:559)
at
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:206)
at
org.jruby.evaluator.EvaluationState.constDeclNode(EvaluationState.java:744)
at
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:222)
at
org.jruby.evaluator.EvaluationState.blockNode(EvaluationState.java:522)
at
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:200)
at
org.jruby.evaluator.EvaluationState.evalClassDefinitionBody(EvaluationState.java:1866)
at
org.jruby.evaluator.EvaluationState.moduleNode(EvaluationState.java:1282)
at
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:295)
at
org.jruby.evaluator.EvaluationState.rootNode(EvaluationState.java:1596)
at
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:355)
at org.jruby.evaluator.EvaluationState.eval(EvaluationState.java:163)
at org.jruby.Ruby.loadNode(Ruby.java:1208)
at org.jruby.util.PreparsedScript.load(PreparsedScript.java:53)
at org.jruby.runtime.load.LoadService.smartLoad(LoadService.java:308)
at org.jruby.runtime.load.LoadService.require(LoadService.java:334)
at org.jruby.RubyKernel.require(RubyKernel.java:705)
at org.jruby.RubyKernelInvokerSrequire1.call(Unknown Source)
at
org.jruby.runtime.callback.InvocationCallback.execute(InvocationCallback.java:49)
at
org.jruby.internal.runtime.methods.FullFunctionCallbackMethod.internalCall(FullFunctionCallbackMethod.java:79)
at
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:79)
at
org.jruby.evaluator.EvaluationState.fCallNode(EvaluationState.java:1014)
at
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:252)
at
org.jruby.evaluator.EvaluationState.blockNode(EvaluationState.java:522)
at
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:200)
at
org.jruby.evaluator.EvaluationState.rootNode(EvaluationState.java:1596)
at
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:355)
at org.jruby.evaluator.EvaluationState.eval(EvaluationState.java:163)
at org.jruby.Ruby.loadNode(Ruby.java:1208)
at org.jruby.util.BuiltinScript.load(BuiltinScript.java:54)
at org.jruby.Ruby$1.load(Ruby.java:644)
at org.jruby.runtime.load.LoadService.smartLoad(LoadService.java:308)
at org.jruby.runtime.load.LoadService.require(LoadService.java:334)
at org.jruby.RubyKernel.require(RubyKernel.java:705)
at org.jruby.RubyKernelInvokerSrequire1.call(Unknown Source)
at
org.jruby.runtime.callback.InvocationCallback.execute(InvocationCallback.java:49)
at
org.jruby.internal.runtime.methods.FullFunctionCallbackMethod.internalCall(FullFunctionCallbackMethod.java:79)
at
org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:79)
at
org.jruby.evaluator.EvaluationState.fCallNode(EvaluationState.java:1014)
at
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:252)
at
org.jruby.evaluator.EvaluationState.blockNode(EvaluationState.java:522)
at
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:200)
at
org.jruby.evaluator.EvaluationState.rootNode(EvaluationState.java:1596)
at
org.jruby.evaluator.EvaluationState.evalInternal(EvaluationState.java:355)
at org.jruby.evaluator.EvaluationState.eval(EvaluationState.java:163)
at org.jruby.Ruby.eval(Ruby.java:277)
at org.jruby.Ruby.compileOrFallbackAndRun(Ruby.java:303)
at org.jruby.Main.runInterpreter(Main.java:233)
at org.jruby.Main.runInterpreter(Main.java:190)
at org.jruby.Main.run(Main.java:120)
at org.jruby.Main.main(Main.java:95)
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email