2016-10-17 4 views
0

Это довольно распространенный вопрос в весеннем сообществе. Однако даже после ссылки на многие предложения и ответы, я не мог заставить программу ниже работать правильно.NotWritablePropertyException - Когда контекст инициализирован - Spring

Мне нужно ввести свойство String в Spring bean.

Вот определение компонента:

<bean id="AzoneMessageTransformer" class="com.test.wsg.RequestMessageTransformer">  
    <property name="converAndMarshal" value="false" /> 
</bean> 

<bean id="BzoneMessageTransformer" class="com.test.wsg.RequestMessageTransformer"> 
    <property name="converAndMarshal" value="false" /> 
    <property name="authCode" > 
     <value>BZ</value> 
    </property> 
</bean> 

Вот весна фасоли:

public class RequestMessageTransformer implements InitializingBean { 

    private String authCode = null; 

    private boolean converAndMarshal = true; 

    public void setConverAndMarshal(boolean converAndMarshal) { 
     this.converAndMarshal = converAndMarshal; 
    } 

    public boolean isConverAndMarshal() { 
     return converAndMarshal; 
    } 

    public void setAuthCode(String authCode) { 
     this.authCode = authCode; 
    } 

    public String getAuthCode() { 
     return authCode; 
    } 

    } 

Прием ниже сообщение об ошибке при контекст становится инициализирован:

 at java.lang.Thread.run(Thread.java:744) 
Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'authCode' of bean class [com.test.wsg.RequestMessageTransformer]: Bean property 'authCode' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter? 
     at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:1067) 
     at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:926) 
     at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:95) 
     at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:75) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1502) 

Любая помощь и предложения для указания моей ошибки очень ценятся.

Заранее благодарен!

+0

Какой версии весной вы используете? – Mahesh

+0

Используемая версия @Mahesh: 4.1.4.RELEASE – Vignesh

+0

вы реализуете инициализацию bean-компонента, где реализуется метод afterPropertiesSet(). у вас был бы класс, скомпилированный на первом месте – kuhajeyan

ответ

0

AUTHCODE является строковым свойством, вы должны установить свойство что-то вроде этого

<bean id="BzoneMessageTransformer" class="com.test.wsg.RequestMessageTransformer"> 
    <property name="converAndMarshal" value="false" /> 
    <property name="authCode" value="BZ" />   

</bean> 
+0

попробовал эту опцию, которая является короткой альтернативой вложенному « ...» ... но все еще сталкивается с той же ошибкой. – Vignesh

Смежные вопросы