【问题标题】:apache Digester: Unexspected NoSuchMethodException on addSetNestedPropertiesapache Digester:addSetNestedProperties 上出现意外的 NoSuchMethodException
【发布时间】:2010-04-26 09:07:23
【问题描述】:

我在使用 Digester 时遇到问题,希望您能帮助我。我有以下 Bean:

public class MyEntry {
   private String entityID;

   public String getEntityID() { return this.entityID; }
   public void setEntityID(final String entityID) { this.entityID = entityID; }
}

以及以下 XML 结构:

<entries>
  <entry>
     <MyID>
        24309LAGH1
     </MyID>
  </entry>
</entries>

我使用了 digester API 的 addSetNestedProperties(…) 方法:

digester.addSetNestedProperties("entries/entry", "MyID", "entryID");

出现以下异常:

java.lang.NoSuchMethodException: Bean has no property named MyID

为什么digester 搜索名为“MyID”的属性?我根据消化器 API 将“entryID”指定为 bean 属性

谢谢:)

最好的问候 QStorm

【问题讨论】:

    标签: java apache-commons-digester


    【解决方案1】:

    确保getter和setter的名称是你的属性“entityID”的大写或小写。可能你的getter名称是这样的-->“getEntityID”尝试为此更改-->“getentityID”

    编辑

    对不起,你要检查的属性是 --> "MyID"

    【讨论】:

      【解决方案2】:

      [原创]

      您没有使用正确的规则来执行您的任务。

      尝试改用这个:

      digester.addBeanPropertySetter("entries/entry/MyID", "entityID");
      

      提示:使用例如BasicConfigurator.configure(); 在您的 main 中激活 log4j。输出可能非常有用。

      [编辑]

      如果你想使用addSetNestedProperties:

      public class MyEntry {
         private String entityID;
      
         public String getEntityID() { return this.entityID; }
         public void setEntityID(final String entityID) { this.entityID = entityID; }
      }
      

      对于new Digester().parse(myFile)

      digester.addObjectCreate("entries/entry", MyEntry.class);
      digester.addSetNestedProperties("entries/entry", "MyID", "entityID");
      //your propertyName was not the same as in your Bean Class Fields.
      

      我认为您的例外是:

      java.lang.NoSuchMethodException: Bean has no property named entryID
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-10-11
        • 2022-01-21
        • 2012-09-17
        • 1970-01-01
        • 2015-01-30
        • 1970-01-01
        • 2021-10-02
        相关资源
        最近更新 更多