【问题标题】:Spring webflow can't access mvc beansSpring webflow 无法访问 mvc bean
【发布时间】:2012-08-26 14:06:06
【问题描述】:

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

manage-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>

Manage-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,在操作状态下,bean 直接由 Spring MVC 拾取/管理。 bean 是否必须在 applicationcontext 中声明(并且可序列化?)?使用 xml 符号?

【问题讨论】:

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


    【解决方案1】:

    如果我改变了

    <set> 
    

    走向一个

    <evaluate expression>
    

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

    但是那样我必须定义同一个 bean 两次,因为它曾经被 pkg-search 注释拾取,然后在 web-flow 中再次出现。 我想要已经做好的豆子。

    Spring Web 流确实会再次重新创建/实例化 bean。您可以引用属性,将它们与 Web 流 bean 导入文件中的 bean 自动装配,但这就像一个新的上下文,不知道现有的 bean。 (使用事件来处理流文件和普通上下文文件。)

    【讨论】:

      【解决方案2】:

      java.lang.IllegalStateException:渲染视图发生异常 org.springframework.web.servlet.view.JstlView:未命名;网址 [/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)

      检查视图文件位置。

      【讨论】:

      • 但在您的应用程序上下文中,它的 ViewResolver 配置为
      • 是的,这是正确的。可以肯定的是,我已将视图放在包含视图的文件夹中,但视图也在 views 文件夹中。据我所知,这应该可以确定一个正确的位置。删除 时,它加载得很好,当然没有数据。所以位置不是问题,它是访问 Spring MVC 中定义的 bean(基于注解)
      猜你喜欢
      • 2014-04-21
      • 1970-01-01
      • 1970-01-01
      • 2013-10-26
      • 2013-11-25
      • 2014-11-10
      • 2011-07-29
      • 1970-01-01
      • 2011-07-27
      相关资源
      最近更新 更多