首页 > 代码库 > struts启动报错Javassist library is missing

struts启动报错Javassist library is missing

很久不用struts2,最近在配置的时候,启动服务器报错

Caused by: java.lang.ExceptionInInitializerError    at com.opensymphony.xwork2.ognl.OgnlValueStackFactory.setContainer(OgnlValueStackFactory.java:84)    ... 64 moreCaused by: java.lang.IllegalArgumentException: Javassist library is missing in classpath! Please add missed dependency!    at ognl.OgnlRuntime.<clinit>(OgnlRuntime.java:168)    ... 65 moreCaused by: java.lang.ClassNotFoundException: javassist.ClassPool    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)    at java.lang.Class.forName0(Native Method)    at java.lang.Class.forName(Class.java:169)    at ognl.OgnlRuntime.<clinit>(OgnlRuntime.java:165)    ... 65 more

我的struts2是2.3.20 是很新的版本

看描述 是缺少这样一个依赖:java.lang.IllegalArgumentException: Javassist library is missing in classpath! Please add missed dependency!
这个依赖的名字叫做Javassist 
 
这是因为xwork迁移到Apache以后,把用了新的OGNL 3.x ,新的OGNL 3.x把Javassist 的依赖给去掉了,所以就得自己加jar包 或者加maven依赖
最简单的找到这个依赖jar包的办法 自然是到struts的完整压缩包里的app目录下去找
把javassist-3.11.0.GA.jar这个依赖加上就好了
 
 
 

struts启动报错Javassist library is missing