Created
January 22, 2013 22:33
-
-
Save f16z/4599296 to your computer and use it in GitHub Desktop.
Calling JRuby code from a Java bean managed by Spring.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?xml version="1.0" encoding="UTF-8"?> | |
| <beans xmlns="http://www.springframework.org/schema/beans" | |
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
| xmlns:p="http://www.springframework.org/schema/p" | |
| xmlns:context="http://www.springframework.org/schema/context" xmlns:amq="http://activemq.apache.org/schema/core" | |
| xmlns:jms="http://www.springframework.org/schema/jms" xmlns:lang="http://www.springframework.org/schema/lang" | |
| xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd | |
| http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms.xsd http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd"> | |
| <lang:jruby id="serviceProvider" | |
| script-source="RubyServiceProvider.rb" | |
| script-interfaces="ServiceProvider"> | |
| </lang:jruby> | |
| </beans> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| require 'java' | |
| include_class 'ServiceProvider' | |
| class RubyServiceProvider < ServiceProvider | |
| def decryptJob(s) | |
| puts "DECRYPT JOB" | |
| end | |
| end | |
| RubyServiceProvider.new |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public interface ServiceProvider { | |
| public void decryptJob(String str); | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package testing; | |
| import org.springframework.context.ApplicationContext; | |
| import org.springframework.context.support.ClassPathXmlApplicationContext; | |
| public class TestJRubyIntegration { | |
| public static void main(String[] args) { | |
| ApplicationContext context = new ClassPathXmlApplicationContext("jruby-applicationContext.xml"); | |
| ServiceProvider sp = (ServiceProvider) context.getBean("serviceProvider"); | |
| } | |
| } |
Author
Author
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scriptFactory.serviceProvider': Resolution of declared constructors on bean Class [org.springframework.scripting.jruby.JRubyScriptFactory] from ClassLoader [sun.misc.Launcher$AppClassLoader@6c5bdfae] failed; nested exception is java.lang.NoClassDefFoundError: org/jruby/exceptions/JumpException
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/bin/java -Didea.launcher.port=7554 "-Didea.launcher.bin.path=/Applications/IntelliJ IDEA 12.app/bin" -Dfile.encoding=UTF-8 -classpath "/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/lib/javafx-doclet.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/lib/tools.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/htmlconverter.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/JObjC.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Users/panchisco/IdeaProjects/websandbox/out/production/websandbox:/Users/panchisco/IdeaProjects/websandbox/lib/activemq-core-5.7.0.jar:/Users/panchisco/IdeaProjects/websandbox/lib/activemq-jaas-5.7.0.jar:/Users/panchisco/IdeaProjects/websandbox/lib/jcl-over-slf4j-1.6.6.jar:/Users/panchisco/IdeaProjects/websandbox/lib/geronimo-jta_1.0.1B_spec-1.0.1.jar:/Users/panchisco/IdeaProjects/websandbox/lib/geronimo-jms_1.1_spec-1.1.1.jar:/Users/panchisco/IdeaProjects/websandbox/lib/activemq-protobuf-1.1.jar:/Users/panchisco/IdeaProjects/websandbox/lib/slf4j-api-1.6.6.jar:/Users/panchisco/IdeaProjects/websandbox/lib/kahadb-5.7.0.jar:/Users/panchisco/IdeaProjects/websandbox/lib/activemq-console-5.7.0.jar:/Users/panchisco/IdeaProjects/websandbox/lib/activemq-web-5.7.0.jar:/Users/panchisco/IdeaProjects/websandbox/lib/geronimo-j2ee-management_1.1_spec-1.0.1.jar:/Users/panchisco/IdeaProjects/websandbox/lib/velocity-1.7.jar:/Users/panchisco/IdeaProjects/websandbox/lib/spring-core-3.0.7.RELEASE.jar:/Users/panchisco/IdeaProjects/websandbox/lib/activemq-spring-5.7.0.jar:/Users/panchisco/IdeaProjects/websandbox/lib/commons-net-3.1.jar:/Users/panchisco/IdeaProjects/websandbox/lib/woodstox-core-asl-4.1.4.jar:/Users/panchisco/IdeaProjects/websandbox/lib/activemq-pool-5.7.0.jar:/Users/panchisco/IdeaProjects/websandbox/lib/slf4j-log4j12-1.6.6.jar:/Users/panchisco/IdeaProjects/websandbox/lib/activeio-core-3.1.4.jar:/Users/panchisco/IdeaProjects/websandbox/lib/spring-aop-3.0.7.RELEASE.jar:/Users/panchisco/IdeaProjects/websandbox/lib/commons-dbcp-1.4.jar:/Users/panchisco/IdeaProjects/websandbox/lib/spring-oxm-3.0.7.RELEASE.jar:/Users/panchisco/IdeaProjects/websandbox/lib/httpclient-4.2.1.jar:/Users/panchisco/IdeaProjects/websandbox/lib/spring-expression-3.0.7.RELEASE.jar:/Users/panchisco/IdeaProjects/websandbox/lib/xpp3-1.1.4c.jar:/Users/panchisco/IdeaProjects/websandbox/lib/xbean-spring-3.11.1.jar:/Users/panchisco/IdeaProjects/websandbox/lib/jmdns-3.4.1.jar:/Users/panchisco/IdeaProjects/websandbox/lib/commons-codec-1.6.jar:/Users/panchisco/IdeaProjects/websandbox/lib/httpcore-4.2.1.jar:/Users/panchisco/IdeaProjects/websandbox/lib/jasypt-spring3-1.9.0.jar:/Users/panchisco/IdeaProjects/websandbox/lib/commons-beanutils-1.8.3.jar:/Users/panchisco/IdeaProjects/websandbox/lib/commons-pool-1.6.jar:/Users/panchisco/IdeaProjects/websandbox/lib/activemq-xmpp-5.7.0.jar:/Users/panchisco/IdeaProjects/websandbox/lib/spring-beans-3.0.7.RELEASE.jar:/Users/panchisco/IdeaProjects/websandbox/lib/org.apache.servicemix.bundles.josql-1.5_5.jar:/Users/panchisco/IdeaProjects/websandbox/lib/spring-context-3.0.7.RELEASE.jar:/Users/panchisco/IdeaProjects/websandbox/lib/log4j-1.2.17.jar:/Users/panchisco/IdeaProjects/websandbox/lib/jettison-1.3.2.jar:/Users/panchisco/IdeaProjects/websandbox/lib/activemq-optional-5.7.0.jar:/Users/panchisco/IdeaProjects/websandbox/lib/commons-lang-2.6.jar:/Users/panchisco/IdeaProjects/websandbox/lib/commons-collections-3.2.1.jar:/Users/panchisco/IdeaProjects/websandbox/lib/spring-jms-3.0.7.RELEASE.jar:/Users/panchisco/IdeaProjects/websandbox/lib/spring-asm-3.0.7.RELEASE.jar:/Users/panchisco/IdeaProjects/websandbox/lib/stax2-api-3.0.2.jar:/Users/panchisco/IdeaProjects/websandbox/lib/geronimo-j2ee-connector_1.5_spec-2.0.0.jar:/Users/panchisco/IdeaProjects/websandbox/lib/spring-tx-3.0.7.RELEASE.jar:/Users/panchisco/IdeaProjects/websandbox/lib/jasypt-1.9.0.jar:/Users/panchisco/IdeaProjects/websandbox/lib/xstream-1.4.3.jar:/Users/panchisco/IdeaProjects/websandbox/lib/rome-1.0.jar:/Users/panchisco/IdeaProjects/websandbox/lib/geronimo-servlet_2.5_spec-1.2.jar:/Users/panchisco/IdeaProjects/websandbox/lib/jetty-all-server-7.6.7.v20120910.jar:/Users/panchisco/IdeaProjects/websandbox/lib/spring-webmvc-3.0.7.RELEASE.jar:/Users/panchisco/IdeaProjects/websandbox/lib/core-3.1.1.jar:/Users/panchisco/IdeaProjects/websandbox/lib/sitemesh-2.4.2.jar:/Users/panchisco/IdeaProjects/websandbox/lib/jsp-2.1-glassfish-2.1.v20100127.jar:/Users/panchisco/IdeaProjects/websandbox/lib/jsp-api-2.1-glassfish-2.1.v20100127.jar:/Users/panchisco/IdeaProjects/websandbox/lib/spring-web-3.0.7.RELEASE.jar:/Users/panchisco/IdeaProjects/websandbox/lib/jetty-websocket-7.6.7.v20120910.jar:/Users/panchisco/IdeaProjects/websandbox/lib/jdom-1.0.jar:/Users/panchisco/IdeaProjects/websandbox/lib/derbyLocale_it.jar:/Users/panchisco/IdeaProjects/websandbox/lib/derby.jar:/Users/panchisco/IdeaProjects/websandbox/lib/derbyLocale_fr.jar:/Users/panchisco/IdeaProjects/websandbox/lib/derbyLocale_pl.jar:/Users/panchisco/IdeaProjects/websandbox/lib/derbyLocale_ko_KR.jar:/Users/panchisco/IdeaProjects/websandbox/lib/derbyLocale_ru.jar:/Users/panchisco/IdeaProjects/websandbox/lib/derbynet.jar:/Users/panchisco/IdeaProjects/websandbox/lib/derbyrun.jar:/Users/panchisco/IdeaProjects/websandbox/lib/derbyLocale_pt_BR.jar:/Users/panchisco/IdeaProjects/websandbox/lib/derbyLocale_hu.jar:/Users/panchisco/IdeaProjects/websandbox/lib/derbytools.jar:/Users/panchisco/IdeaProjects/websandbox/lib/derbyLocale_zh_CN.jar:/Users/panchisco/IdeaProjects/websandbox/lib/derbyclient.jar:/Users/panchisco/IdeaProjects/websandbox/lib/derbyLocale_de_DE.jar:/Users/panchisco/IdeaProjects/websandbox/lib/derbyLocale_cs.jar:/Users/panchisco/IdeaProjects/websandbox/lib/derbyLocale_ja_JP.jar:/Users/panchisco/IdeaProjects/websandbox/lib/derbyLocale_es.jar:/Users/panchisco/IdeaProjects/websandbox/lib/derbyLocale_zh_TW.jar:/Users/panchisco/IdeaProjects/websandbox/lib/aopalliance.jar:/Applications/IntelliJ IDEA 12.app/lib/idea_rt.jar" com.intellij.rt.execution.application.AppMain TestJRubyIntegration
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serviceProvider': BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scriptFactory.serviceProvider': Resolution of declared constructors on bean Class [org.springframework.scripting.jruby.JRubyScriptFactory] from ClassLoader [sun.misc.Launcher$AppClassLoader@6c5bdfae] failed; nested exception is java.lang.NoClassDefFoundError: org/jruby/exceptions/JumpException
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:451)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:83)
at TestJRubyIntegration.main(TestJRubyIntegration.java:6)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scriptFactory.serviceProvider': Resolution of declared constructors on bean Class [org.springframework.scripting.jruby.JRubyScriptFactory] from ClassLoader [sun.misc.Launcher$AppClassLoader@6c5bdfae] failed; nested exception is java.lang.NoClassDefFoundError: org/jruby/exceptions/JumpException
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:160)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1002)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:906)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:484)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:196)
at org.springframework.scripting.support.ScriptFactoryPostProcessor.prepareScriptBeans(ScriptFactoryPostProcessor.java:334)
at org.springframework.scripting.support.ScriptFactoryPostProcessor.postProcessBeforeInstantiation(ScriptFactoryPostProcessor.java:283)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInstantiation(AbstractAutowireCapableBeanFactory.java:847)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveBeforeInstantiation(AbstractAutowireCapableBeanFactory.java:819)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:445)
... 15 more
Caused by: java.lang.NoClassDefFoundError: org/jruby/exceptions/JumpException
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2404)
at java.lang.Class.getDeclaredConstructors(Class.java:1853)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:157)
... 28 more
Caused by: java.lang.ClassNotFoundException: org.jruby.exceptions.JumpException
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 32 more
Process finished with exit code 1