Spring Web流:流XML尚未注册

时间:2011-11-19 15:29:41

标签: java spring-webflow

我正在使用spring webflow,我已经在webflow.xml中注册了所有的流xmls,就像这样

     

 <!-- The Flow handler adapter, to handle flows request recieved by the dispatcher servlet -->
 <bean id="flowController" class="org.springframework.webflow.mvc.servlet.FlowHandlerAdapter">  
     <property name="flowExecutor" ref="flowExecutor"/>  
 </bean>
<flow:flow-registry id="myflowRegistry" flow-builder-services="flowBuilderServices" >
        <!-- all xml files in base path and subfolders  -->    
        <flow:flow-location path="/WEB-INF/flows/payslips.xml" />          
        <flow:flow-location path="/WEB-INF/flows/admissions.xml" />
        <flow:flow-location id="cash-advance" path="/WEB-INF/flows/cashadvance.xml"/>
        <flow:flow-location path="/WEB-INF/flows/services.xml" />
        <flow:flow-location path="/WEB-INF/flows/undergradadm.xml" />
     </flow:flow-registry>   
  <bean class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping">
    <property name="order" value="0" />
    <property name="flowRegistry" ref="myflowRegistry" />

</bean>

现在当我用payslips.go或cash-advance.go访问这些页面时,他们不工作并给我:

Error 500: Request processing failed; nested exception is java.lang.StringIndexOutOfBoundsException: String index out of range: 1

我对webflow非常陌生,它应该可行。 Spring MVC中的视图不是webflow的一部分,或者没有在流程下定义的任何xml工作完全正常,因为它与webflow无关。但这些页面有一个流程定义。我不认为mozilla与它有任何关系。

在其他一些机器上,这些工作正常。必须有我自己的设置,它不会让它工作。

可能这也有帮助

Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 1
    at java.lang.String.substring(String.java:1060)
    at org.springframework.webflow.context.servlet.DefaultFlowUrlHandler.getFlowId(DefaultFlowUrlHandler.java:83)
    at org.springframework.webflow.mvc.servlet.FlowHandlerMapping.getHandlerInternal(FlowHandlerMapping.java:92)
    at org.springframework.web.servlet.handler.AbstractHandlerMapping.getHandler(AbstractHandlerMapping.java:184)
    at org.springframework.web.servlet.DispatcherServlet.getHandler(DispatcherServlet.java:1057)

由于

1 个答案:

答案 0 :(得分:0)

这就是我配置SWF的方式:

<!--
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                                    SPRING WEB FLOW'S CONFIGURATION
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-->

<!-- Creates a flow executor in Spring, responsible for creating and executing flows -->
<flow:flow-executor id="flowExecutor" flow-registry="flowRegistry" />

<!-- Load flow definitions and make them available to the flow executor -->
<flow:flow-registry id="flowRegistry">
    <flow:flow-location id="process-flow" path="/process/flows/process-flow.xml" />
</flow:flow-registry>

<!-- The FlowHandlerMapping helps DispatcherServlet to knowing that it should send flow requests to Spring Web Flow -->
<bean class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping">
    <property name="flowRegistry" ref="flowRegistry" />
</bean>

<!-- The FlowHandlerAdapter is equivalent to a Spring MVC controller in that it handles requests coming in for a flow and processes those requests -->
<bean class="org.springframework.webflow.mvc.servlet.FlowHandlerAdapter">
    <property name="flowExecutor" ref="flowExecutor" />
</bean>

我的流程位于我的网络文件夹的根目录中,但您也可以使用WEB-INF目录;这样,路径应为“/WEB-INF/foo/bar.xml /".

我希望它有所帮助,问候。