在渲染页面时获得NPE异常

时间:2013-09-13 11:34:46

标签: spring jsf-2 primefaces spring-webflow-2

我在呈现以下视图状态时遇到Web流异常。如果我直接打开这个视图状态,它的工作正常,但当我来自不同的流程时,它会抛出webflow异常。

我还观察到,如果我没有在屏幕上执行任何操作并且长时间不断地打开我的屏幕,那么它也会抛出相同的异常。

我的流量文件:

<view-state id="eftBatchRejection">
    <on-entry>          
        <set name="conversationScope.currentState" value="'eftBatchRejection'" />
        <set name="conversationScope.errorState" value="'eftBatchRejection'" />
        <set name="flowScope.flowValidator" value="'true'" />
        <!-- Set HELP link -->
        <evaluate expression="utilities.handleHelpUrl(conversationScope.currentState)" result="flowScope.helpURL" />            
        <evaluate expression="paymentEntryBean.setEFTRejectionBatchLayer()" />

例外:

Attempting to handle [org.springframework.webflow.execution.ActionExecutionException: Exception thrown executing [AnnotatedAction@15aad3e targetAction = [EvaluateAction@13e5dec expression = paymentEntryBean.setEFTRejectionBatchLayer(), resultExpression = [null]], attributes = map[[empty]]] in state 'eftBatchRejection' of flow 'billing/paymentEntry' -- action execution attributes were 'map[[empty]]'] with root cause [java.lang.NullPointerException]  
2013-09-13 16:48:08 ERROR WebflowExceptionHandlerBean:90 - HANDLING FLOW EXECUTION EXCEPTION: org.springframework.webflow.execution.ActionExecutionException: Exception thrown executing [AnnotatedAction@15aad3e targetAction = [EvaluateAction@13e5dec expression = paymentEntryBean.setEFTRejectionBatchLayer(), resultExpression = [null]], attributes = map[[empty]]] in state 'eftBatchRejection' of flow 'billing/paymentEntry' -- action execution attributes were 'map[[empty]]'
org.springframework.webflow.execution.ActionExecutionException: Exception thrown executing [AnnotatedAction@15aad3e targetAction = [EvaluateAction@13e5dec expression = paymentEntryBean.setEFTRejectionBatchLayer(), resultExpression = [null]], attributes = map[[empty]]] in state 'eftBatchRejection' of flow 'billing/paymentEntry' -- action execution attributes were 'map[[empty]]'
    at org.springframework.webflow.execution.ActionExecutor.execute(ActionExecutor.java:60)
    at org.springframework.webflow.engine.ActionList.execute(ActionList.java:155)

Java方法:

public void setEFTRejectionBatchLayer() {

        if (initializeObjects == null || !(initializeObjects.equalsIgnoreCase(Constants.NO_IND))) {
            EftRejectionBatchDTO eftRejectionBatchDTO = (EftRejectionBatchDTO) UXTools.getBean(EFT_REJECTION_BATCH_DTO);

            BatchPayment batchPayment = new BatchPayment();

            MiscParty miscParty = new MiscParty();
}

请告诉我这件事。谢谢你!

Vikas Soni

2 个答案:

答案 0 :(得分:1)

只是在研究网络流量问题,即使这不是你主要关心的问题,我也可能会找到你的错误何时发生的部分解释。

“on-entry”表达式代码仅在从Webflow逻辑访问此视图状态时执行,如果您从刷新或直接访问以前呈现的视图访问此流状态(通过直接键入),则不会执行在url .... = e1s5 for eg)

它不能解决你的问题,但我认为它可以解释它的复制条件。

您的操作总是导致未处理的错误(在您的java代码中进行调查),但您的操作并不总是执行。

您可以通过将操作移动到“渲染”部分来检查,然后每次以任何方式访问此视图时都会显示错误。

无论哪种方式,我认为这是一个感兴趣的小提示。

Goog运气好!

答案 1 :(得分:0)

迟到的反应但无论如何......

这可能无法回答这个问题,但我认为这可能有助于其他人......

当我们收到错误时,例如尝试处理[org.springframework .....动作执行属性是&#39; map [[empty]]&#39;]的根本原因,这意味着来自jsp的表单数据未被传输。

尝试替换

<view-state id="eftBatchRejection">

<view-state id="eftBatchRejection" model="beanName">