标签:java struts2 ognl java.lang.exceptionininitializererror
使用OGNL进行简单的测试时,获取对象的属性,结果出现报错,信息如下:
Exception in thread "main" java.lang.ExceptionInInitializerError at ognl.ASTProperty.getValueBody(ASTProperty.java:114) at ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212) at ognl.SimpleNode.getValue(SimpleNode.java:258) at ognl.Ognl.getValue(Ognl.java:494) at ognl.Ognl.getValue(Ognl.java:644) at ognl.Ognl.getValue(Ognl.java:702) at ognl.Ognl.getValue(Ognl.java:672) at OGNL1.main(OGNL1.java:15) Caused by: java.lang.IllegalArgumentException: Javassist library is missing in classpath! Please add missed dependency! at ognl.OgnlRuntime.<clinit>(OgnlRuntime.java:168) ... 8 more Caused by: java.lang.ClassNotFoundException: javassist.ClassPool at java.net.URLClassLoader$1.run(URLClassLoader.java:372) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:360) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:260) at ognl.OgnlRuntime.<clinit>(OgnlRuntime.java:165) ... 8 more
然后检查了一下发现是关键的包没有导入,使用OGNL需要导入两个关键的包,分别是:ognl-xxx.jar 和 javassist-xxx.GA.jar ,将这两个包导入后,运行正常
测试实例:
import ognl.Ognl;
import ognl.OgnlException;
public class OGNL1 {
/**
* @param args
*/
public static void main(String[] args) {
Person person = new Person();
person.setName("xiaoming");
try {
System.out.println(Ognl.getValue("passwd", person));
Object valueObject = Ognl.getValue("name", person);
System.out.println(valueObject);
} catch (OgnlException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class Person{
public String passwd = "root";
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}注:对于有访问权限的字段,无需getter方法
输出:
root
xiaoming
附:这两个jar包我就放在附件中了
本文出自 “zifangsky” 博客,请务必保留此出处http://983836259.blog.51cto.com/7311475/1701364
OGNL报错:Exception in thread "main" java.lang.ExceptionInInitializerError
标签:java struts2 ognl java.lang.exceptionininitializererror
原文地址:http://983836259.blog.51cto.com/7311475/1701364