2011-11-19 52 views
0

我使用的Webflow春天,我已经注册的所有流个XML在webflow.xml这样Spring Web Flow的:流动个XML没有被注册

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

现在,当我TR访问任何这些页面与payslips.go或现金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) 

感谢

+0

对不起再次碰到这个线程,但这个问题仍然是打开的:我调试了一下,似乎在视图=“payslips”(它在payslips.properties注册)没有得到拾起。它就好像是“”,:一个空字符串。我甚至尝试给jsp名称和有和没有JSP完整路径,如:/WEB_INF/payslips/paylisps.jsp,但它仍然没有拿起。我仍然坚持在这个问题上: – sarmahdi

+0

我把spring的webflow库添加到ear/lib中,并开始工作。我不知道如何,但在测试和开发他们正在工作,而不是被添加到服务器的类路径或耳/库。或者可能是我没有意识到它。 – sarmahdi

+0

你绝对需要你的classpath中的WebFlow jar。 – dbreaux

回答

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/”。

我希望它有帮助,问候。