2016-09-28 24 views
0

原因:org.springframework.beans.NotWritablePropertyException:Beanクラス[com.uz.SysConfig]のプロパティ 'isTestCtx'が無効です:Beanプロパティ 'isTestCtx'に書き込みができないか、または無効なセッターメソッドがあります。 setterのパラメータ型がgetterの戻り値の型と一致していますか?SpringでNotWritablePropertyExceptionエラーが発生しました

モデルコード:ロンボク生成されたコードと

public class SysConfig { 

    @Getter 
    @Setter 
    @Value("${isTestCtx}") 
    private boolean isTestCtx; 

    @PostConstruct 
    public void init(){ 
     log.info(" isTestCtx: {}", isTestCtx); 
    } 
} 

、私は

public boolean isTestCtx() { 
     return this.isTestCtx; 
    } 

    public void setTestCtx(boolean isTestCtx) { 
     this.isTestCtx = isTestCtx; 
    } 

すべてがうまく行く見ることができます。なぜこのエラーが発生するのかわかりません。 誰でも手伝いできますか?

+1

[エラー設定プロパティ値。入れ子にされた例外はorg.springframework.beans.NotWritablePropertyExceptionです:](http://stackoverflow.com/questions/23653301/error-setting-property-values-nested-exception-is-org-springframework-beans-not) –

+0

@ゲッターと@セッターの目的は、コードの残りの部分はうまくいくようです。ゲッターやセッターは必要ありません。ここではどのように春の豆を定義していますか? –

+1

@Himanshu Bhardwaj @ Setterと@ Getterはロンボクの注釈です – lawrence

答えて

1

ロンボクで生成されたコードは間違っているようです(明らかに、これはゲッターについてのみ言及していますが、pageの下に細かいところにあります)。 booleanプロパティisTextCtxについては

、JavaBeansの仕様に応じて、予想されるゲッターとセッターがでなければならない:testCtxにあなたの財産を名前変更

public boolean isIsTestCtx() { 
    return this.isTestCtx; 
} 

public void setIsTestCtx(boolean isTestCtx) { 
    this.isTestCtx = isTestCtx; 
} 

はしかし、問題を解決する必要があります。

@Getter 
@Setter 
@Value("${isTestCtx}") 
private boolean testCtx; 
+0

@サムそれは決して重複していない。オリジナルとして指定したものは、ロンボクで生成されたゲッターとセッターを扱っていません。そしてあなたの答えは、自動生成されているので、セッターの名前を変更するようにOPに指示しました。 –

+0

私はあきらめます。あなたは明らかにプロジェクトロンボクのことを聞いていない。そして、あなたの答えは私の前に10〜15秒ほど先行していませんでした。ちょうど同じ時刻に投稿されました。 –

+1

もう一度、OK:1)セッターである(誤って)自動生成されたプロジェクトロンボクによって、彼らはあなたがあなたの答えで提案するようにもOPによって補正することができないOPで実装されていません。 2)Springは、Setterメソッドの名前を推測するために@ValueアノテーションでEL式を使用しません。 Beanプロパティ自体の名前を使用します。 –

関連する問題