在流程中:
<action-state id="create">
<evaluate expression="operatore_rer" result="flowScope.operatore_rer" />
<evaluate expression="mainService.getComuni()" result="flowScope.comuni_list" />
<transition to="nuovo-operatore-rer" />
</action-state>
evaluate表达式不会调用方法mainService.getComuni()
我必须在哪里以及如何声明mainService ????
如果我在applicationContext中声明这个:
<bean id="mainService" class="com.aieap.services.MainService" />
这是错误:
GRAVE: StandardWrapper.Throwable
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mainService' defined in ServletContext resource [/WEB-INF/dispatch-servlet.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.aieap.services.MainService]: Specified class is an interface
帮帮我
答案 0 :(得分:1)
将@Service("mainService")
注释设置为实现MainService
接口的类,并在bean中引用该类而不是接口。通过这种方式,bean可以初始化,您可以在Web流程中调用它。
答案 1 :(得分:0)
mainService
必须是Spring知道的bean。通过Spring XML配置文件(可以通过flow.xml
导入到<bean-import>
文件中,或通过web.xml
加载),或者通过基于注释的bean定义。