• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Spring - Beanshell IllegalAccessError

 
Ranch Hand
Posts: 55
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi,

I am trying the BeanShell example provided at <a href="http://www.springframework.org/docs/reference/dynamic-language.html">Chapter 24. Dynamic language support</a> - 24.3.4. BeanShell beans.

And I have an 'IllegalAccessError' when I try to use the scripted bean in my java code.

The scripted bean 'BshMessenger.bsh' is written as the following and is deployed under ${mydomain}/config.
String message = "Hello World";

String getMessage() {
return message;
}

The interface 'Messenger' is like the following.
package org.testing.scripting.beanshell;

public interface Messenger {

String getMessage();
}

The configuration in the Spring xml file is like the following:

<lang:bsh id="messageService" refresh-check-delay="2000" script-source="classpath:config/BshMessenger.bsh" script-interfaces="org.testing.scripting.beanshell.Messenger">
</lang:bsh>

<bean class="com.testing.Cube">
<property name="messenger" ref="messageService" />
</bean>


Any advices of how to solve this problem will be appreciated. Thank you.


--------------------------------------------------------------------------------------------------------------------------------

Jun-05-2007 17:31:26 WARN (CommonsLoggingOutput.java:67) - Method execution failed:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scriptedObject.messageService': Instanti
ation of bean failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public
java.lang.Object org.springframework.scripting.bsh.BshScriptFactory.getScriptedObject(org.springframework.scripting.ScriptSourc
e,java.lang.Class[]) throws java.io.IOException,org.springframework.scripting.ScriptCompilationException] threw exception; neste
d exception is java.lang.IllegalAccessError: bsh/XThis
Caused by:
org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public java.lang.Object org.springframework.scri
pting.bsh.BshScriptFactory.getScriptedObject(org.springframework.scripting.ScriptSource,java.lang.Class[]) throws java.io.IOExce
ption,org.springframework.scripting.ScriptCompilationException] threw exception; nested exception is java.lang.IllegalAccessErro
r: bsh/XThis
Caused by:
java.lang.IllegalAccessError: bsh/XThis
at org.springframework.scripting.bsh.BshScriptUtils.evaluateBshScript(Ljava.lang.String;[Ljava.lang.Class;Ljava.lang.Cla
ssLoader Ljava.lang.Object;(BshScriptUtils.java:159)
at org.springframework.scripting.bsh.BshScriptUtils.createBshObject(Ljava.lang.String;[Ljava.lang.Class;Ljava.lang.Class
Loader Ljava.lang.Object;(BshScriptUtils.java:90)
at org.springframework.scripting.bsh.BshScriptFactory.getScriptedObject(Lorg.springframework.scripting.ScriptSource;[Lja
va.lang.Class Ljava.lang.Object;(BshScriptFactory.java:145)
at jrockit.reflect.NativeMethodInvoker.invoke0(Ljava.lang.Object;ILjava.lang.Object;[Ljava.lang.Object Ljava.lang.Objec
t;(Unknown Source)
at jrockit.reflect.NativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object Ljava.lang.Object;(Unknown Source)
at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object Ljava.lang.Object;(Unknown So
urce)
at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Unknown Source)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(Lorg.springframework.beans.factory.
support.RootBeanDefinition;Ljava.lang.String;Lorg.springframework.beans.factory.BeanFactory;Ljava.lang.Object;Ljava.lang.reflect
.Method;[Ljava.lang.Object Ljava.lang.Object;(SimpleInstantiationStrategy.java:118)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(Ljava.lang.String;Lorg.sp
ringframework.beans.factory.support.RootBeanDefinition;[Ljava.lang.Object Lorg.springframework.beans.BeanWrapper;(ConstructorRe
solver.java:315)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(Ljava.lang
.String;Lorg.springframework.beans.factory.support.RootBeanDefinition;[Ljava.lang.Object Lorg.springframework.beans.BeanWrapper
;(AbstractAutowireCapableBeanFactory.java:758)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(Ljava.lang.String;Lor
g.springframework.beans.factory.support.RootBeanDefinition;[Ljava.lang.Object Lorg.springframework.beans.BeanWrapper;(AbstractA
utowireCapableBeanFactory.java:712)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(Ljava.lang.String;Lorg.spring
framework.beans.factory.support.RootBeanDefinition;[Ljava.lang.Object Ljava.lang.Object;(AbstractAutowireCapableBeanFactory.jav
a:386)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(Ljava.lang.String;Ljava.lang.Class;[Ljava.lang.
Object Ljava.lang.Object;(AbstractBeanFactory.java:270)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(Ljava.lang.String Ljava.lang.Object;(AbstractB
eanFactory.java:160)
at org.springframework.aop.target.dynamic.BeanFactoryRefreshableTargetSource.freshTarget()Ljava.lang.Object;(BeanFactory
RefreshableTargetSource.java:65)
at org.springframework.aop.target.dynamic.AbstractRefreshableTargetSource.refresh()V(AbstractRefreshableTargetSource.jav
a:95)
at org.springframework.aop.target.dynamic.AbstractRefreshableTargetSource.getTarget()Ljava.lang.Object;(AbstractRefresha
bleTargetSource.java:80)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(Ljava.lang.Object;Ljava.lang.reflect.Method;[Ljava.lang.O
bject Ljava.lang.Object;(JdkDynamicAopProxy.java:183)
at $Proxy13.toString()Ljava.lang.String;(Unknown Source)
at java.lang.String.valueOf(Ljava.lang.Object Ljava.lang.String;(Unknown Source)
at java.lang.StringBuffer.append(Ljava.lang.Object Ljava.lang.StringBuffer;(Unknown Source)
.....
Jun-05-2007 17:31:26 WARN (CommonsLoggingOutput.java:59) - --Erroring: batchId[0] message[org.springframework.beans.factory.Bea
nCreationException: Error creating bean with name 'scriptedObject.messageService': Instantiation of bean failed; nested exceptio
n is org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public java.lang.Object org.springframework
.scripting.bsh.BshScriptFactory.getScriptedObject(org.springframework.scripting.ScriptSource,java.lang.Class[]) throws java.io.I
OException,org.springframework.scripting.ScriptCompilationException] threw exception; nested exception is java.lang.IllegalAcces
sError: bsh/XThis]
 
Caly LeeAnn
Ranch Hand
Posts: 55
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Problem solved.
 
Consider Paul's rocket mass heater.
reply
    Bookmark Topic Watch Topic
  • New Topic