java.lang.AbstractMethodError:org.apache.commons.dbcp.PoolgDataSource$PoolGuardConnectionWrapper.getClientInfo()Ljava/util/Properties;

java.lang.AbstractMethodError:org.apache.commons.dbcp.PoolgDataSource$PoolGuardConnectionWrapper.getClientInfo()Ljava/util/Properties;,java,json,struts2,actionresult,struts2-json-plugin,Java,Json,Struts2,Actionresult,Struts2 Json Plugin,在我的项目中,我使用了double select box,但在运行操作时,它会显示以下异常。我尝试过:但收到了相同的异常。我不知道如何继续下去 堆栈跟踪: My struts.xml包含以下内容: 错误的 错误的 执行JSON结果时,根对象的所有属性都序列化为JSON。但您将root参数留空。即使struts.xml的验证失败,文档仍会被正确解析,但它有一个警告 WARN (com.opensymphony.xwork2.config.providers.XmlConfigurationProv

在我的项目中,我使用了double select box,但在运行操作时,它会显示以下异常。我尝试过:但收到了相同的异常。我不知道如何继续下去

堆栈跟踪:

My struts.xml包含以下内容:

错误的 错误的
执行JSON结果时,根对象的所有属性都序列化为JSON。但您将root参数留空。即使struts.xml的验证失败,文档仍会被正确解析,但它有一个警告

WARN (com.opensymphony.xwork2.config.providers.XmlConfigurationProvider:56) - no default parameter defined for result of type json
当默认参数root为空时,将从值堆栈中查看序列化对象。在大多数情况下,它是一个动作bean。但在您的情况下,您不应该序列化这个bean,因为它可能包含应该从序列化中排除的属性,例如数据源属性

要从JSON对象填充选择框,您应该只序列化包含列表值的属性。如果将此属性名称用作根参数值,则可以执行此操作。如果需要为double select box序列化两个列表,则可以将根对象保留为默认值,并使用JSON结果的includeProperties参数,并将两个列表属性与结果放在一起

可以将逗号分隔的正则表达式列表传递给 JSON结果限制将序列化哪些属性。只有 将包括与这些正则表达式中的任何一个匹配的属性 在序列化输出中

注:

排除特性表达式优先于包含特性表达式 表达。也就是说,如果使用include和exclude属性 同一结果上的表达式,不包括属性表达式 如果排除属性表达式与 财产第一

^条目\[\d+\]\.clientNumber, ^条目\[\d+\]\.scheduleNumber, ^条目\[\d+\]\.createUserId
此外,这并不相关,但如果您使用拦截器覆盖操作配置,请查看每个堆栈包含哪些拦截器,并且不必重复相同的拦截器两次。在您的情况下,应该使用基本堆栈或默认堆栈。

使用更新的commons dbcp实现。从堆栈跟踪来看,您至少在java6上,但使用的是旧版本的非JDBC4.0驱动程序。我解决了这个问题,谢谢大家的帮助。问题在于,我包含了不必要的getter,它们同时访问该方法。请参阅此链接以获取参考:。我刚刚删除了manager类的getter,它开始工作得很好。下次当您无法删除getter时,您将返回这里寻求解决方案。我是一个新手,阅读理解答案本身需要很多新的东西,但是谢谢你的答案,它对我很有用比如:
WARN (com.opensymphony.xwork2.config.providers.XmlConfigurationProvider:56) - no default parameter defined for result of type json