2016-04-08 5 views
0

リピートコントロールを作成しました。いずれかのコンポーネントがフォームを更新すると、この実行時エラーが返されます。リピートコントロールで更新した後のランタイムエラー

私の投稿は主にコードですが、何が間違っているのか分かりません。そして、ナンセンスのこの行以外のものを埋めるのは難しいです、そうでなければStackOverflowは私に投稿させません。

javax.faces.FacesException 
    com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:106) 
    com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:210) 
    com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:96) 
    com.ibm.xsp.controller.FacesControllerImpl.execute(FacesControllerImpl.java:256) 
    com.ibm.xsp.webapp.FacesServlet.serviceView(FacesServlet.java:228) 
    com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:157) 
    com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:160) 
    com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:138) 
    com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:103) 
    com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:576) 
    com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1335) 
    com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:853) 
    com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:796) 
    com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:565) 
    com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1319) 
    com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:662) 
    com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:482) 
    com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:357) 
    com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:313) 
    com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:272) 
java.lang.IllegalArgumentException 
    javax.faces.model.ListDataModel.getRowData(ListDataModel.java:141) 
    com.ibm.xsp.component.UIRepeatContainer.addIndexedDataContext(UIRepeatContainer.java:173) 
    com.ibm.xsp.component.UIRepeatContainer.getDataContexts(UIRepeatContainer.java:86) 
    com.ibm.xsp.util.DataPublisher.getDataContextList(DataPublisher.java:349) 
    com.ibm.xsp.util.DataPublisher.revokeControlData(DataPublisher.java:271) 
    com.ibm.xsp.component.UIDataPanelBase.revokeControlData(UIDataPanelBase.java:319) 
    com.ibm.xsp.component.UIDataPanelBase.processDecodes(UIDataPanelBase.java:334) 
    javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) 
    com.ibm.xsp.component.UIRepeat.processDecodes(UIRepeat.java:526) 
    javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) 
    com.ibm.xsp.component.UIDataPanelBase.processDecodes(UIDataPanelBase.java:331) 
    javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) 
    javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) 
    javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) 
    com.ibm.xsp.extlib.component.layout.UIVarPublisherBase.processDecodes(UIVarPublisherBase.java:123) 
    javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) 
    com.ibm.xsp.component.UIDataPanelBase.processDecodes(UIDataPanelBase.java:331) 
    javax.faces.component.UIForm.processDecodes(UIForm.java:166) 
    javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) 
    javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1177) 
    javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:343) 
    com.ibm.xsp.component.UIViewRootEx._processDecodes(UIViewRootEx.java:1438) 
    com.ibm.xsp.component.UIViewRootEx.processDecodes(UIViewRootEx.java:1399) 
    com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:98) 
    com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:210) 
    com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:96) 
    com.ibm.xsp.controller.FacesControllerImpl.execute(FacesControllerImpl.java:256) 
    com.ibm.xsp.webapp.FacesServlet.serviceView(FacesServlet.java:228) 
    com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:157) 
    com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:160) 
    com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:138) 
    com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:103) 
    com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:576) 
    com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1335) 
    com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:853) 
    com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:796) 
    com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:565) 
    com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1319) 
    com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:662) 
    com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:482) 
    com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:357) 
    com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:313) 
    com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:272) 

そして、ここのコードです:

<xp:repeat id="repeatApproveForward" repeatControls="true" 
     var="repeat_row" indexVar="repeat_index"> 
     <xp:this.value><![CDATA[#{javascript:getComponent("ccAprForwardStateArray").getValue();}]]></xp:this.value> 
     <xp:panel> 
      <xp:this.rendered><![CDATA[#{javascript:currentDocument.isEditable() && compositeData.debug}]]></xp:this.rendered> 
      <xp:br></xp:br> 
      # 
      <xp:text escape="true" id="ccAprForwardCount" 
       value="#{javascript:repeat_index}" style="font-weight:bold"> 
       <xp:this.converter> 
        <xp:convertNumber type="number" 
         integerOnly="true"> 
        </xp:convertNumber> 
       </xp:this.converter> 
      </xp:text> 
      <xp:br></xp:br> 
      <xp:span style="font-weight:bold">Status:</xp:span> 
        
      <xp:text escape="true" id="ccAprForwardStatus"> 
       <xp:this.value><![CDATA[#{javascript:repeat_row[0]}]]></xp:this.value> 
      </xp:text> 
      <xp:br></xp:br> 
      <xp:span style="font-weight:bold">StatusDesc:</xp:span> 
        
      <xp:text escape="true" id="ccAprForwardStatusDesc"> 
       <xp:this.value><![CDATA[#{javascript:repeat_row[1]}]]></xp:this.value> 
      </xp:text> 
      <xp:br></xp:br> 
      <xp:span style="font-weight:bold">Approver:</xp:span> 
        
      <xp:text escape="true" id="ccAprForwardApprover"> 
       <xp:this.value><![CDATA[#{javascript:repeat_row[2]}]]></xp:this.value> 
      </xp:text> 
      <xp:br></xp:br> 
      <xp:span style="font-weight:bold">Condition:</xp:span> 
        
      <xp:text escape="true" id="ccAprForwardCondition"> 

       <xp:this.value><![CDATA[#{javascript:repeat_row[3]}]]></xp:this.value> 
      </xp:text> 
      <xp:br></xp:br> 
      <xp:span style="font-weight:bold"> 
       MailNotification: 
      </xp:span> 
        
      <xp:text escape="true" id="ccAprForwardMail"> 

       <xp:this.value><![CDATA[#{javascript:repeat_row[4]}]]></xp:this.value> 
      </xp:text> 
      <xp:br></xp:br> 
      <xp:span style="font-weight:bold"> 
       MailTimeOutNotification 
      </xp:span> 
      <xp:span style="font-weight:bold">:</xp:span> 
        
      <xp:text escape="true" id="ccAprForwardTimeOutMail"> 

       <xp:this.value><![CDATA[#{javascript:repeat_row[5]}]]></xp:this.value> 
      </xp:text> 
      <xp:br></xp:br> 
      <xp:span style="font-weight:bold">EventSubject</xp:span> 
      <xp:span style="font-weight:bold">:</xp:span> 
        
      <xp:text escape="true" id="ccAprForwardEventSubject"> 

       <xp:this.value><![CDATA[#{javascript:repeat_row[6]}]]></xp:this.value> 
      </xp:text> 
      <xp:br></xp:br> 
     </xp:panel> 
     <xp:span style="font-weight:bold"></xp:span> 
     <xp:button id="btnApproveForward" 
      styleClass="btn btn-sm btn-success"> 
      <xp:this.value><![CDATA[#{javascript:getComponent("ccAprForwardStatusDesc").getValue();}]]></xp:this.value> 

      <xp:this.rendered><![CDATA[#{javascript:viewScope.isShowAprNote != "1" 
&& getComponent("ccAprForwardCondition").getValue() 
&& getComponent("ccAprUserCondition").getValue();}]]></xp:this.rendered> 
      <xp:span styleClass="glyphicon glyphicon-thumbs-up"></xp:span> 




     <xp:eventHandler event="onclick" submit="true" refreshMode="complete"> 
      <xp:this.action> 
       <xp:actionGroup> 
        <xp:this.condition><![CDATA[#{javascript:if (!repeat_row[4] | @Trim([repeat_row[2]]) == "") 
{false}else{true}}]]></xp:this.condition> 
        <xp:executeScript> 
         <xp:this.script><![CDATA[#{javascript:viewScope.isShowAprNote = "1" 
viewScope.isShowRejNote = ""}]]></xp:this.script> 
        </xp:executeScript> 

        <xp:modifyField name="Status" 
         var="currentDocument"> 

         <xp:this.value><![CDATA[#{javascript:repeat_row[0]}]]></xp:this.value> 
        </xp:modifyField> 
        <xp:modifyField name="StatusDesc" 
         var="currentDocument"> 
         <xp:this.value><![CDATA[#{javascript:repeat_row[1]}]]></xp:this.value> 
        </xp:modifyField> 
        <xp:modifyField name="ApproveGroup" 
         var="currentDocument"> 
         <xp:this.value><![CDATA[#{javascript:repeat_row[2]}]]></xp:this.value> 
        </xp:modifyField> 
        <xp:modifyField name="EventSubject" 
         var="currentDocument"> 
         <xp:this.value><![CDATA[#{javascript:repeat_row[6]}]]></xp:this.value> 
        </xp:modifyField> 

       </xp:actionGroup> 
      </xp:this.action></xp:eventHandler></xp:button> 
    </xp:repeat> 

    <xp:panel id="panelAprNote" > 
     <xp:this.rendered><![CDATA[#{javascript:viewScope.get("isShowAprNote") == "1" && viewScope.get("isShowRejNote") != "1"}]]></xp:this.rendered> 
     <xp:inputText id="txtAprApproverNote" 
      dojoType="dijit.form.TextBox" value="#{viewScope.AprApproverNote}"> 
      <xp:this.dojoAttributes> 
       <xp:dojoAttribute name="placeholder" 
        value="Notunuzu giriniz"> 

       </xp:dojoAttribute> 
      </xp:this.dojoAttributes> 
     </xp:inputText> 

     &#160;<xp:button value="Gönder" id="button4" styleClass="btn btn-sm btn-success"> 



      <xp:eventHandler event="onclick" submit="true" refreshMode="complete"> 
       <xp:this.action> 

        <xp:actionGroup> 

         <xp:modifyField name="ApproverNote" var="currentDocument" value="#{javascript:viewScope.AprApproverNote}"> 

         </xp:modifyField> 

         <xp:actionGroup> 




          <xp:executeScript> 
           <xp:this.script><![CDATA[#{javascript:currentDocument.getDocument().getFirstItem("ApprovalHistory").appendToTextList(@Text(@Now())+" Tarihinde " [email protected]("[CN]",session.getEffectiveUserName()) + " Onayladı. :") & currentDocument.ApproverNote(0)}]]></xp:this.script> 
          </xp:executeScript> 
          <xp:executeScript> 
           <xp:this.script><![CDATA[#{javascript:var URL = facesContext.getExternalContext().getRequest().getRequestURL(); 
var notesLink = currentDocument.getDocument().getNotesURL(); 

var vHtml = '"Aşağıda linki bulunan döküman onayınıza gönderilmiştir. Bu bir bilgilendirme mailidir."<br></br><br></br><a href="'+notesLink+'">Onayınızdaki Dökümana Notes Uygulaması Üzerinden Ulaşmak İçin Tıklayınız</a><br></br><br></br>"Yukarıdaki link açılmıyor ise aşağıdaki linki tıklayınız."<br></br><a href="' +URL+'?documentId=' + currentDocument.getDocument().getUniversalID() + '&action=openDocument">Onayınızdaki Dökümana Web Browser Üzerinden Ulaşmak İçin Tıklayınız</a>' 

var mail = new HTMLMail(); 
mail.setTo(currentDocument.getItemValue("ApproveGroup")); 
mail.setSubject("[ERP] Yapitasi " + currentDocument.getItemValue("Form") + " Onay Uyari Maili"); 
mail.addHTML(vHtml); 
mail.send();}]]></xp:this.script> 
          </xp:executeScript> 
         </xp:actionGroup> 
         <xp:saveDocument var="currentDocument"> 
         </xp:saveDocument> 



         <xp:openPage name="#{javascript:compositeData.view}"> 
         </xp:openPage> 





        </xp:actionGroup> 
       </xp:this.action> 
      </xp:eventHandler> 
     </xp:button>&#160; 
     <xp:button value="Cancel" id="button3" 
      styleClass="btn btn-default"> 

     <xp:eventHandler event="onclick" submit="true" refreshMode="complete"></xp:eventHandler></xp:button> 

    </xp:panel> 
+0

だけでエラーメッセージがあなたを助けるためには不十分です。私は2つのことをお勧めします:1)問題を分離するためにコードとロジックを減らします。 2)エラーメッセージの表示に加えて、リピート/ XPageのXMLマークアップコードとリピートを更新するロジックを投稿します。 –

答えて

0

キーコンポーネントを特定しようとしています。 XPages OpenLog Loggerはそうするべきです。

原因は部分的な更新時にapplyRequestValuesフェーズで、繰り返し制御のためにデータを照会しようとしているためです。 (要求値の適用フェーズは、ブラウザの値がコンポーネントのsubmittedValueプロパティに渡されたときです。このエラーはありません。は実際にコンポーネントのsubmittedValueを設定していることを意味します。つまり、コンポーネントツリーをクエリし、 '値バインディング。

データソースがdataCache="id"の場合、データビューの詳細ファセットを使用していました。それがここに当てはまるかどうか、またはrepeatControls="true"という設定の影響を受けるかどうかはわかりません。これは、部分的な更新中に行が再評価されないことを意味します。影響を受けるコンポーネントが読み取り専用の場合は、valueプロパティの計算値をif (view.isRenderingPhase()) {...}にラップすることができます。したがって、要求値適用の段階では計算されません。

(これは私がIBMの接続で走り、エンゲージセッションで覆われていた。)

関連する問題