Недопустимое свойство класса EJB недоступно для записи или недопустимый метод установки

Это может выглядеть как дубликат этого вопроса. Но это другое. Я пытался реорганизовать свой прежний код с помощью метода инъекций весной.

У меня есть bean-класс, который содержит много статических вспомогательных методов. Мой целевой метод выглядит следующим образом:

Context.java


private static MessageSender messageSender;

//...

public static MessageSender getMessageSender(){
    return messageSender;
}

Бин контекста


<bean id="context" class="org.abc.Context">

   <property name="messageSender"><ref bean="mailMessageSender"/></property>
</bean>

MailMessageSender.java


public abstract class MailMessageSender{

   protected abstract Session createSession();

   //using createSession() somewhere in this class
}

MailMessageSender bean


<bean id="session" class="javax.mail.Session" scope="prototype" />

<bean id="mailMessageSender" class="org.abc.MailMessageSender">
   <lookup-method name="createSession" bean="session"/>
</bean>

Я получаю недопустимую ошибку свойства при установке проекта.

1 ответ

Вы не можете ввести статическое поле, измените свою переменную в Context.java, сделайте так:

private MessageSender messageSender;

//...

public MessageSender getMessageSender(){
    return messageSender;
}
Другие вопросы по тегам