在Ognl 3.2.10中找不到DefaultMemberAccess

时间:2019-02-28 14:53:58

标签: struts2 ognl

我在最新的struts 2.5.20和OGNL 3.2.10上有一个应用程序。 应用程序启动后,出现异常

java.lang.ClassNotFoundException: ognl.DefaultMemberAccess
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1309)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1138)

我检查了struts文档,发现以下内容

  

DefaultMemberAccess is only available in tests, it won't be used when there was no custom MemberAccess provided, an exception will be thrown in such case

这是文档的链接:Release notes - version 3.2.3 - WIP

我无法获得任何示例,或者如何为MemberAccess创建自定义实现并将其提供给OgnlContext。有人知道我该如何解决吗?

1 个答案:

答案 0 :(得分:0)

DefaultMemberAccess在版本3.2.1之后被删除。您可以将版本降级为3.2.1

此文件已移至here

您可以在README.md

中参考项目描述。

如何定义AccessMember?

最好的方法是实现自己的AccessMember,它将最适合您的项目,您可以基于现有的DefaultAccessMember并根据需要进行调整。