[tc-users] Fwd: [tc-forge-dev] Can't get the chat JRuby example to work

Jason Voegele jvoegele at terracottatech.com
Tue Sep 2 12:59:01 PDT 2008


Hi Andreas,

I think you would be better off using the jruby executable script that 
ships with JRuby rather than crafting your own run.sh.  The LoadError 
you're getting indicates to me that JRuby cannot find its built in 
libraries.  You can pass the Terracotta properties by setting the 
JAVA_OPTS environment variable to include 
the -Xbootclasspath, -Dtc.install-root, and -Dtc.config options.  Also 
make sure to put the tc.jar in your CLASSPATH environment variable, and 
then you can just invoke the jruby script like this:

jruby -I/path/to/terracotta.rb chat.rb Andreas

That said, I've tried this approach and, although I got past the 
LoadError that you get below, I still could not get the example to work 
properly.  I got the following error:

java.lang.Class:-2:in `getDeclaredMethods0': 
java.lang.NoClassDefFoundError: com/tc/object/event/DmiManager
        from java.lang.Class:2427:in `privateGetDeclaredMethods'
        from java.lang.Class:1791:in `getDeclaredMethods'
        from com.tc.aspectwerkz.reflect.impl.java.JavaClassInfo:125:in 
`<init>'
        from com.tc.aspectwerkz.reflect.impl.java.JavaClassInfo:157:in 
`getClassInfo'
        from com.tc.object.bytecode.ManagerImpl:773:in `isRoot'
        from com.tc.object.bytecode.ManagerUtil:440:in `isRoot'
        from com.tc.util.FieldUtils:207:in `isStaticAndNonRootField'
        from com.tc.util.FieldUtils:35:in `get'


I'll keep digging and I'll let you know if I'm able to get this example 
up and running.

On Saturday 30 August 2008 5:17:12 pm Steven Harris wrote:
> Forwarding because this list has more people :-)
>
> Begin forwarded message:
> > From: "Andreas Ronge" <andreas.ronge at jayway.se>
> > Date: August 30, 2008 8:13:22 AM PDT
> > To: tc-forge-dev at lists.terracotta.org
> > Subject: [tc-forge-dev] Can't get the chat JRuby example to work
> >
> > Hi
> >
> > I have been trying to reproduce the JRuby chat:
> > http://www.terracotta.org/confluence/display/labs/Terracotta+for+JR
> >uby I'm using Ubuntu 7.04 , Java 1.6.0_06-b02,  Terracotta 2.6.2.
> >
> > When running with JRuby 1.1.4 I get the following error:
> >
> > Exception in thread "main" [Loaded org.jruby.runtime.MethodIndex
> > from file:/home/andreas/software/jruby-1.1.4/lib/jruby.jar]
> > [Loaded org.jruby.runtime.CallSite$PlusCallSite from
> > file:/home/andreas/software/jruby-1.1.4/lib/jruby.jar]
> > [Loaded org.jruby.runtime.CallSite$MinusCallSite from
> > file:/home/andreas/software/jruby-1.1.4/lib/jruby.jar]
> > [Loaded org.jruby.runtime.CallSite$MulCallSite from
> > file:/home/andreas/software/jruby-1.1.4/lib/jruby.jar]
> > [Loaded org.jruby.runtime.CallSite$DivCallSite from
> > file:/home/andreas/software/jruby-1.1.4/lib/jruby.jar]
> > [Loaded org.jruby.runtime.CallSite$LtCallSite from
> > file:/home/andreas/software/jruby-1.1.4/lib/jruby.jar]
> > [Loaded org.jruby.runtime.CallSite$LeCallSite from
> > file:/home/andreas/software/jruby-1.1.4/lib/jruby.jar]
> > [Loaded org.jruby.runtime.CallSite$GtCallSite from
> > file:/home/andreas/software/jruby-1.1.4/lib/jruby.jar]
> > [Loaded org.jruby.runtime.CallSite$GeCallSite from
> > file:/home/andreas/software/jruby-1.1.4/lib/jruby.jar]
> >
> > :1: IO error -- builtin/core_ext/symbol (LoadError)
> >
> > 	...internal jruby stack elided...
> > 	from (unknown).(unknown)(:1)
> > [Loaded com.tc.util.concurrent.CopyOnWriteArrayMap$ReadOnlySet from
> > file:/home/andreas/software/terracotta-2.6.2/lib/tc.jar]
> > [Loaded com.tc.util.concurrent.CopyOnWriteArrayMap$ReadOnlyEntrySet
> > from file:/home/andreas/software/terracotta-2.6.2/lib/tc.jar]
> > [Loaded com.tc.util.concurrent.CopyOnWriteArrayMap$ReadOnlyIterator
> > from file:/home/andreas/software/terracotta-2.6.2/lib/tc.jar]
> > [Loaded com.tc.util.concurrent.CopyOnWriteArrayMap
> > $ReadOnlyEntrySetIterator
> > from file:/home/andreas/software/terracotta-2.6.2/lib/tc.jar]
> > [Loaded com.tc.util.concurrent.CopyOnWriteArrayMap$ReadOnlyEntry
> > from file:/home/andreas/software/terracotta-2.6.2/lib/tc.jar]
> > [Loaded org.h2.util.CacheObject$1 from
> > file:/home/andreas/software/terracotta-2.6.2/lib/h2-1.0.67.jar]
> > [Loaded org.h2.store.FileStoreInputStream from
> > file:/home/andreas/software/terracotta-2.6.2/lib/h2-1.0.67.jar]
> >
> > My run.sh:
> > java -verbose -Xbootclasspath/p:/home/andreas/software/
> > terracotta-2.6.2/lib/dso-boot/dso-boot-hotspot_linux_160_06.jar
> > -Dtc.install-root=/home/andreas/software/terracotta-2.6.2
> > -Dtc.config=/home/andreas/repos/terracotta-db/config/tc-config.xml
> > -Djruby.home=/home/andreas/software/jruby-1.1.4 -cp
> > /home/andreas/software/terracotta-2.6.2/lib/tc.jar -jar
> > /home/andreas/software/jruby-1.1.4/lib/jruby.jar chat.rb Andreas
> >
> >
> > When using JRuby 1.0:
> > Exception in thread main java.lang.ClassFormatError: Invalid method
> > Code length 71421 in class file org/jruby/parser/DefaultRubyParser
> > at java.lang.ClassLoader.defineClass1(Native Method)
> > at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
> > at
> > java.security.SecureClassLoader.defineClass(SecureClassLoader.java:
> > 124)
> > at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> > at java.net.URLClassLoader.accessbash00(URLClassLoader.java:56)
> > at java.net.URLClassLoader.run(URLClassLoader.java:195)
> > at java.security.AccessController.doPrivileged(Native Method)
> > at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> > at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> > at sun.misc.Launcher.loadClass(Launcher.java:276)
> > at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> > at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> > at
> > org.jruby.parser.RubyParserPool.borrowParser(RubyParserPool.java:
> > 51)
> > at org.jruby.parser.Parser.parse(Parser.java:74)
> > at org.jruby.Ruby.parse(Ruby.java:1020)
> > at org.jruby.Main.getParsedScript(Main.java:238)
> > at org.jruby.Main.runInterpreter(Main.java:222)
> > at org.jruby.Main.runInterpreter(Main.java:173)
> > at org.jruby.Main.run(Main.java:120)
> > at org.jruby.Main.main(Main.java:95)
> >
> > Sincerly
> > Andreas
> > _______________________________________________
> > tc-forge-dev mailing list
> > tc-forge-dev at lists.terracotta.org
> > http://lists.terracotta.org/mailman/listinfo/tc-forge-dev



-- 
Jason Voegele
The Phone Booth Rule:
	A lone dime always gets the number nearly right.


More information about the tc-users mailing list