原因:java.lang.NoSuchMethodException Spring 批量 xml 配置
Caused by: java.lang.NoSuchMethodException Spring Batch xml configuration
我有一个批处理过程,每周周五执行一次。 Springxml配置如下
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggerpo">
<ref bean="cronTriggerForProcessOrder"/>
</property>
</bean>
<bean id="cronTriggerForProcessOrder" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="jobForProcessOrders" />
<property name="cronExpression" value="0 0 0 ? * FRI" />
</bean>
<bean id="jobForProcessOrders"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="ProcessOrdersController" />
<property name="targetMethod" value="processOrders"/>
<property name="concurrent" value="false" />
</bean>
<bean id="ProcessOrdersController" class="com.java.app.web.controller.ProcessOrderController">
</bean>
在控制器中删除了@controller 注释,因为它表示控制器已初始化多次。现在我在 tomcat 启动时遇到错误。
Caused by: java.lang.NoSuchMethodException: com.java.app.web.controller.ProcessOrderController.processOrders()
控制器中确实存在 processOrders 方法。
@RequestMapping(value="/processorder")
public class ProcessOrderController {
@RequestMapping(value="/processOrders.do")
public ModelAndView processOrders(HttpServletRequest req, HttpServletResponse res) throws AppException{
ModelAndView mav = new ModelAndView();
mav.setViewName("processorder");
processOrders();
return mav;
}
}
我不确定我犯了什么错误。任何人都可以帮助我理解吗?我可以根据要求提供更多信息。
还想知道如何消除 xml 配置并使用纯基于注释的代码。
我相信它正在尝试找到一个没有参数的方法,但是你的 HttpServletRequest req, HttpServletResponse res
。
作为测试,我建议您尝试删除那些参数。如果您没有收到该错误,您至少知道该往哪个方向看;)
我有一个批处理过程,每周周五执行一次。 Springxml配置如下
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggerpo">
<ref bean="cronTriggerForProcessOrder"/>
</property>
</bean>
<bean id="cronTriggerForProcessOrder" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="jobForProcessOrders" />
<property name="cronExpression" value="0 0 0 ? * FRI" />
</bean>
<bean id="jobForProcessOrders"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="ProcessOrdersController" />
<property name="targetMethod" value="processOrders"/>
<property name="concurrent" value="false" />
</bean>
<bean id="ProcessOrdersController" class="com.java.app.web.controller.ProcessOrderController">
</bean>
在控制器中删除了@controller 注释,因为它表示控制器已初始化多次。现在我在 tomcat 启动时遇到错误。
Caused by: java.lang.NoSuchMethodException: com.java.app.web.controller.ProcessOrderController.processOrders()
控制器中确实存在 processOrders 方法。
@RequestMapping(value="/processorder")
public class ProcessOrderController {
@RequestMapping(value="/processOrders.do")
public ModelAndView processOrders(HttpServletRequest req, HttpServletResponse res) throws AppException{
ModelAndView mav = new ModelAndView();
mav.setViewName("processorder");
processOrders();
return mav;
}
}
我不确定我犯了什么错误。任何人都可以帮助我理解吗?我可以根据要求提供更多信息。
还想知道如何消除 xml 配置并使用纯基于注释的代码。
我相信它正在尝试找到一个没有参数的方法,但是你的 HttpServletRequest req, HttpServletResponse res
。
作为测试,我建议您尝试删除那些参数。如果您没有收到该错误,您至少知道该往哪个方向看;)