Я новичок в Spring и обновляю веб-приложение Spring 2.5 до 3.2.3. Я получаю сообщение об ошибке с первой страницы приложения. Ошибка в Invalid property 'commandClass' класса bean. Это веб-приложение работает около 5 лет, поэтому проблема должна быть весной от 2,5 до 3,2 изменений. У меня должно быть что-то неправильное, какие-то идеи?Ошибка обновления 2.5-2.2: недопустимое свойство «commandClass» класса bean
Полная ошибка:
Error creating bean with name '/new_candidate.html' defined in ServletContext resource [/WEB-INF/webapp-servlet.xml]:
Ошибка настройки значения свойств; Вложенное исключение - org.springframework.beans.NotWritablePropertyException: Недопустимое свойство «commandClass» класса bean [org.myorg.app.web.ScoreChangeController]: Свойство «commandClass» bean-свойства не доступно для записи или имеет неверный метод setter. Соответствует ли тип параметра сеттера типу возврата получателя?
Вот боб Защита от WebAPP-sevlet.xml:
<bean name="/new_candidate.html" class="org.myorg.app.web.ScoreChangeController" scope="session">
<property name="commandClass" value="org.myorg.app.model.Database"/>
<property name="formView" value="generic"/>
<property name="candidateManager" ref="candidateManager"/>
</bean>
Контроллера:
package org.myorg.app.web;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.myorg.app.model.Database;
import org.myorg.app.service.CandidateManager;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.view.RedirectView;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.validation.BindException;
import org.springframework.web.util.WebUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
public class ScoreChangeController
{
private CandidateManager candidateManager;
protected Object formBackingObject(HttpServletRequest request) throws Exception {
Database defaultDatabase = new Database();
defaultDatabase.setApptNo("16 digits");
defaultDatabase.setAccessionNo("8 digits");
defaultDatabase.setTstPkgId("12345678912345678912345");
return defaultDatabase;
}
protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
Database database = (Database)binder.getTarget();
}
public CandidateManager getCandidateManager() {
return candidateManager;
}
public void setCandidateManager(CandidateManager candidateManager) {
this.candidateManager = candidateManager;
}
public ModelAndView onSubmit(HttpServletRequest req, HttpServletResponse res, Object command, BindException errors) throws Exception {
if(WebUtils.hasSubmitParameter(req, "retrieve"))
{
candidateManager.retrieveData((Database)command);
}
return new ModelAndView(new RedirectView("success.jsp"));
}
}
Свойство commandClass осталось от реализации Spring 2.5, оно должно быть устарело в 3.2. Я попробую удалить свойство. – Jim
и то же самое, что я наблюдаю для свойства 'formView'. - Спасибо – saurav
, когда я вывожу commandClass и FormView, я получаю: – Jim