0

以下の問題について、このサイトを指摘されました。

OpenNTF.org からチェックボックス コードを借用しました。プロジェクトは - http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&documentId=CDD107F4006F7D5C8625775F001B8C61

これを xPage に統合しました。ローカルの Notes クライアント、Web ブラウザ、およびハンドヘルド デバイスで実行すると正常に動作します。しかし、ドミノ サーバー上のレプリカで実行すると、列数の値が null になります。ドミノ サーバーは 8.5.3 FP1 です。

ローカルのクライアントでは正常に動作しているのに、Notes クライアントを介してドミノ サーバー上でのみエラーが発生する理由がわかりません。

ありがとう、ウォルト

ここにエラーがあります

予期しないランタイム エラー ランタイムで予期しないエラーが発生しました。エラー ソース ページ名:/Company.xsp コントロール ID: rowRepeat

JavaScript 計算式の実行中に例外エラーが発生しましたスクリプト インタープリター エラー、行 = 1、列 = 37: 'compositeData.FieldValues' は null

JavaScript コード

Math.ceil(compositeData.FieldValues.length / compositeData.numberOfColumns);

スタックトレース

com.ibm.xsp.exception.EvaluationExceptionEx: Error while executing JavaScript computed expression
com.ibm.xsp.binding.javascript.JavaScriptValueBinding.getValue(Unknown Source)
com.ibm.xsp.component.UIDataIterator.getValue(Unknown Source)
com.ibm.xsp.component.UIDataIterator.createDataModel(Unknown Source)
com.ibm.xsp.component.UIDataIterator.getDataModel(Unknown Source)
com.ibm.xsp.component.UIDataIterator.setRowIndex(Unknown Source)
com.ibm.xsp.renderkit.html_extended.IteratorRenderer.encodeRows(Unknown Source)
com.ibm.xsp.renderkit.html_extended.IteratorRenderer.encodeChildren (Unknown Source)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
com.ibm.xsp.component.UIDataIterator.encodeChildren(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderChildren(Unknown Source)
com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren (Unknown Source)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderChildren(Unknown Source)
com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren (Unknown Source)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderChildren(Unknown Source)
com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren (Unknown Source)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderChildren(Unknown Source)
com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren (Unknown Source)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
com.ibm.xsp.component.UIViewRootEx._renderView(Unknown Source)
com.ibm.xsp.component.UIViewRootEx.renderView(Unknown Source)
com.ibm.xsp.application.ViewHandlerExImpl.doRender(Unknown Source)
com.ibm.xsp.application.ViewHandlerExImpl._renderView(Unknown Source)
com.ibm.xsp.application.ViewHandlerExImpl.renderView(Unknown Source)
com.sun.faces.lifecycle.RenderResponsePhase.execute(Unknown Source)
com.sun.faces.lifecycle.LifecycleImpl.phase(Unknown Source)
com.sun.faces.lifecycle.LifecycleImpl.render(Unknown Source)
com.ibm.xsp.controller.FacesControllerImpl.render(Unknown Source)
com.ibm.xsp.webapp.FacesServlet.serviceView(Unknown Source)
com.ibm.xsp.webapp.FacesServletEx.serviceView(Unknown Source)
com.ibm.xsp.webapp.FacesServlet.service(Unknown Source)
com.ibm.xsp.webapp.FacesServletEx.service(Unknown Source)
com.ibm.xsp.webapp.DesignerFacesServlet.service(Unknown Source)
com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet (Unknown Source)
com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(Unknown Source)
com.ibm.designer.runtime.domino.adapter.ComponentModule $AdapterInvoker.invokeServlet(Unknown Source)
com.ibm.designer.runtime.domino.adapter.ComponentModule $ServletInvoker.doService(Unknown Source)
com.ibm.designer.runtime.domino.adapter.ComponentModule.doService (Unknown Source)
com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(Unknown Source)
com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(Unknown Source)
com.ibm.domino.xsp.module.nsf.NSFService.access$0(Unknown Source)
com.ibm.domino.xsp.module.nsf.NSFService$NsfServiceRequest.call(Unknown Source)
com.ibm.domino.xsp.module.nsf.NSFService$NsfServiceRequest.call(Unknown Source)
java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
java.util.concurrent.FutureTask.run(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)
com.ibm.domino.xsp.module.nsf.NSFService$NsfServiceThread.run(Unknown Source)

.

com.ibm.jscript.InterpretException: Script interpreter error, line=1, col=37: compositeData.FieldValues' is null
    com.ibm.jscript.ASTTree.ASTMember.interpret(Unknown Source)
    com.ibm.jscript.ASTTree.binaryop.ASTBinaryDefaultOp.interpret(Unknown Source)
    com.ibm.jscript.ASTTree.ASTArgumentList.interpretArguments(Unknown Source)
    com.ibm.jscript.types.FBSObject.call(Unknown Source)
    com.ibm.jscript.ASTTree.ASTCall.interpret(Unknown Source)
    com.ibm.jscript.ASTTree.ASTProgram.interpret(Unknown Source)
    com.ibm.jscript.ASTTree.ASTProgram.interpretEx(Unknown Source)
    com.ibm.jscript.JSExpression._interpretExpression(Unknown Source)
    com.ibm.jscript.JSExpression.access$1(Unknown Source)
    com.ibm.jscript.JSExpression$2.run(Unknown Source)
    java.security.AccessController.doPrivileged(Unknown Source)
    com.ibm.jscript.JSExpression.interpretExpression(Unknown Source)
    com.ibm.jscript.JSExpression.evaluateValue(Unknown Source)
    com.ibm.jscript.JSExpression.evaluateValue(Unknown Source)
    com.ibm.xsp.javascript.JavaScriptInterpreter.interpret(Unknown Source)
    com.ibm.xsp.javascript.JavaScriptInterpreter.interpret(Unknown Source)
    com.ibm.xsp.binding.javascript.JavaScriptValueBinding.getValue(Unknown Source)
    com.ibm.xsp.component.UIDataIterator.getValue(Unknown Source)
    com.ibm.xsp.component.UIDataIterator.createDataModel(Unknown Source)
    com.ibm.xsp.component.UIDataIterator.getDataModel(Unknown Source)
    com.ibm.xsp.component.UIDataIterator.setRowIndex(Unknown Source)
    com.ibm.xsp.renderkit.html_extended.IteratorRenderer.encodeRows(Unknown Source)
    com.ibm.xsp.renderkit.html_extended.IteratorRenderer.encodeChildren (Unknown Source)
    com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
    javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
    com.ibm.xsp.component.UIDataIterator.encodeChildren(Unknown Source)
    com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
    com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
    com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
    com.ibm.xsp.util.FacesUtil.renderChildren(Unknown Source)
    com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren (Unknown Source)
    com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
    javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
    com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
    com.ibm.xsp.util.FacesUtil.renderChildren(Unknown Source)
    com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren (Unknown Source)
    com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
    javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
    com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
    com.ibm.xsp.util.FacesUtil.renderChildren(Unknown Source)
    com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren (Unknown Source)
    com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
    javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
    com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
    com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
    com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
    com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
    com.ibm.xsp.util.FacesUtil.renderChildren(Unknown Source)
    com.ibm.xsp.renderkit.html_extended.HtmlBasicRenderer.encodeChildren (Unknown Source)
    com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeChildren(Unknown Source)
    javax.faces.component.UIComponentBase.encodeChildren(Unknown Source)
    com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
    com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
    com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
    com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
    com.ibm.xsp.util.FacesUtil.renderComponent(Unknown Source)
    com.ibm.xsp.component.UIViewRootEx._renderView(Unknown Source)
    com.ibm.xsp.component.UIViewRootEx.renderView(Unknown Source)
    com.ibm.xsp.application.ViewHandlerExImpl.doRender(Unknown Source)
    com.ibm.xsp.application.ViewHandlerExImpl._renderView(Unknown Source)
    com.ibm.xsp.application.ViewHandlerExImpl.renderView(Unknown Source)
    com.sun.faces.lifecycle.RenderResponsePhase.execute(Unknown Source)
    com.sun.faces.lifecycle.LifecycleImpl.phase(Unknown Source)
    com.sun.faces.lifecycle.LifecycleImpl.render(Unknown Source)
    com.ibm.xsp.controller.FacesControllerImpl.render(Unknown Source)
    com.ibm.xsp.webapp.FacesServlet.serviceView(Unknown Source)
    com.ibm.xsp.webapp.FacesServletEx.serviceView(Unknown Source)
    com.ibm.xsp.webapp.FacesServlet.service(Unknown Source)
    com.ibm.xsp.webapp.FacesServletEx.service(Unknown Source)
    com.ibm.xsp.webapp.DesignerFacesServlet.service(Unknown Source)
    com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet (Unknown Source)
    com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(Unknown Source)
    com.ibm.designer.runtime.domino.adapter.ComponentModule $AdapterInvoker.invokeServlet(Unknown Source)
    com.ibm.designer.runtime.domino.adapter.ComponentModule
$ServletInvoker.doService(Unknown Source)
    com.ibm.designer.runtime.domino.adapter.ComponentModule.doService (Unknown Source)
    com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(Unknown Source)
    com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(Unknown Source)
    com.ibm.domino.xsp.module.nsf.NSFService.access$0(Unknown Source)
    com.ibm.domino.xsp.module.nsf.NSFService$NsfServiceRequest.call(Unknown Source)
    com.ibm.domino.xsp.module.nsf.NSFService$NsfServiceRequest.call(Unknown Source)
    java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    java.util.concurrent.FutureTask.run(Unknown Source)
    java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    java.lang.Thread.run(Unknown Source)
    com.ibm.domino.xsp.module.nsf.NSFService$NsfServiceThread.run(Unknown Source)
4

1 に答える 1

1

スクリプト インタープリター エラーは、「'compositeData.FieldValues' が null です」です。任意のカスタム コントロールのコンテキストでそうであるように、カスタム コントロールにcompositeData渡されるプロパティのマップを参照する変数です。したがって、 が の場合、式がカスタム コントロールのプロパティに割り当てられていれcompositeData.FieldValuesば、その式は に評価されます。nullFieldValuesnull

あなたの場合、長さ(...またはその他のプロパティやメソッド)がないcompositeData.FieldValues.lengthため、式はエラーをスローします。null

これが次のシナリオでうまく機能することを示しました。

  • Notes クライアント、ローカル レプリカ
  • サーバーにアクセスするブラウザ
  • サーバーにアクセスするモバイル デバイス

3 つのシナリオすべてに共通しているのは、コードがローカルで実行されていることです。ブラウザー (モバイルを含む) を介して XPage にアクセスする場合、何らかのサーバーにアクセスしていることになりますが、実行されるコードはそれ自体に対してローカルであり、コードを実行するために別の Domino サーバーに NRPC 呼び出しを行う必要はありません。 .

つまり、ノーツ クライアントからサーバーのレプリカにアクセスする場合です。あなたが渡している式は、または同様の操作FieldValuesを使用していると推測していますが、コードが実行されているサーバーを適切に考慮していないため、カスタム コントロール@DbLookup()に渡されます。null

于 2013-01-25T10:47:10.683 に答える