Spring webflow无法访问mvc bean

时间:2012-08-26 14:06:07

标签: java spring spring-mvc spring-webflow-2

我正在尝试在以下Web流程中使用一些@Service注释类(是的,使用mvc:annotation-driven):

管理-flow.xml

<?xml version="1.0" encoding="UTF-8"?>
<flow xmlns="http://www.springframework.org/schema/webflow"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/webflow
    http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd" start-state="start" >



<view-state id="start" view="Userview.jsp" >

<on-render>

    <set name="flowScope.users"
        value="UserService.getUsers()">
    </set>
</on-render>
</view-state>
<bean-import resource="Manage-Beans.xml"/>
</flow>

管理-beans.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://www.springframework.org/schema/beans         http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean class="com.dproductions.test.Service.SiteService" id="SiteService" />
<bean class="com.dproductions.test.Service.CustomerService" id="CustomerService" />
<bean class="com.dproductions.test.Service.UserService" id="UserService" />

 </beans>

尝试访问流程时,我得到以下堆栈跟踪:http://pastebin.com/QmCXe45Y

归结为Webflow无法访问指定的软件包。 但它没有给出'ClassNotFoundException',这对我来说有点令人费解。

欢迎提出任何建议。

此外,我的servlet-context位于:Servlet-context

我已经打了一个多星期了。

修改

我希望能够像This Example那样使用我的bean,在动作状态下,由Spring MVC直接拾取/管理bean。 是否必须在applicationcontext中声明(并可序列化?)bean?使用xml-notation?

2 个答案:

答案 0 :(得分:1)

如果我改变了

<set> 

朝着

<evaluate expression>

并且在文件Manage-Beans.xml中定义了bean,它可以正常工作。

但是这样我必须两次定义同一个bean,因为它曾经被pkg-search注释选中,然后再次在web-flow中。 我想要制作已经制作的豆子。

Spring web flow再次重新创建/实例化bean。您可以引用属性,在web-flow beans导入文件中使用bean自动装配它们,但它就像一个新的上下文,不知道现有的bean。 (使用事件会转到流文件和普通上下文文件。)

答案 1 :(得分:0)

  

java.lang.IllegalStateException:渲染视图发生异常   org.springframework.web.servlet.view.JstlView:unnamed;网址   [/WEB-INF/flows/manage/Userview.jsp]     org.springframework.webflow.mvc.view.AbstractMvcView.render(AbstractMvcView.java:191)     org.springframework.webflow.engine.ViewState.render(ViewState.java:296)     org.springframework.webflow.engine.ViewState.refresh(ViewState.java:243)     org.springframework.webflow.engine.ViewState.resume(ViewState.java:221)     org.springframework.webflow.engine.Flow.resume(Flow.java:545)     org.springframework.webflow.engine.impl.FlowExecutionImpl.resume(FlowExecutionImpl.java:258)     org.springframework.webflow.executor.FlowExecutorImpl.resumeExecution(FlowExecutorImpl.java:169)     org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:183)     org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)     org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)     org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)     org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)     javax.servlet.http.HttpServlet.service(HttpServlet.java:621)     javax.servlet.http.HttpServlet.service(HttpServlet.java:722)     org.springframework.security.web.FilterChainProxy $ VirtualFilterChain.doFilter(FilterChainProxy.java:322)

检查视图文件位置。