[Seasar-user:576] Re: Seasar V2.0.2 リリース

B fiberbit.net Masataka Kurihara kurihara
2004年 4月 3日 (土) 21:57:47 JST


栗原です。自宅のメールからです。

> ・プロパティの一部を明示的に指定して残りは
>   自動バインディングするのを可能にしました。

AutoPropertyAssemblerTest#testAssemble2()ではOKですが、
XMLを介してやるとNGみたいです。いつもの例ですが、


<?xml version="1.0" encoding="UTF-8"?>
<components>
  <component class="tutorial.org.seasar.console.CD">
    <arg>'kurihara'</arg>
    <arg>'song of earth'</arg>
  </component>
  <component name="comp"
    class="tutorial.org.seasar.console.AutoChangerCar">
    <property name="test">'gggg'</property>
  </component>
</components>

public class AutoChangerCar implements Car{
  private String test;
  public void setTest(String test) {
    this.test = test;
  }
  private BGM bgm;
  public void setBGM(BGM bgm) {
    this.bgm = bgm;
  }
  public Object run() {
    System.out.println("BGM is " + bgm.getDisplay());
    return null;
  }
}

public class CD implements BGM {
  private String artist;
  private String title;
  public CD(String artist, String title) {
    this.artist = artist;
    this.title = title;
  }
  public String getDisplay() {
    return artist + "'s [" + title + "]";
  }
}

プロパティが設定されず、AutoChangerCar#run()のbgm.getDisplay()
でNullPointerExceptionが発生します。設定XMLの<property>エレメント
を削ると問題なく動きます。

<!-- sign start--> 
<from name="Masataka Kurihara">
  <addr>Aobadai 4-4-20-501, Meguro-ku, Tokyo</addr>
  <tel>03-5453-0560</tel>
  <mail>
    <home>[E-MAIL ADDRESS DELETED]</home>
    <office>[E-MAIL ADDRESS DELETED]</office>
  </mail>
</from> 
<!-- sign end -->





Seasar-user メーリングリストの案内