JAR文件中的faces-config.xml在两个Dominos上的行为不同

时间:2012-03-07 15:52:08

标签: xpages faces-config

我有bean的分发包。为了向开发人员保存一些工作,它包含faces-config.xml声明JAR使用的bean - 在JAR的META-INF目录中。

JAR位于WebContent \ WEB-INF \ lib中,并在NSF的构建路径中引用。

开发服务器使用此设置,不需要对NSF内的faces-config.xml进行任何更改。 但是,通过模板从开发服务器复制或刷新的数据库不起作用 - 网页失败并显示错误:

Error while executing JavaScript computed expression
Script interpreter error, line=1, col=1: [ReferenceError] 'app' not found

其中app是应用程序范围bean的名称。

使用完整的堆栈跟踪将错误记录到xpages_exc.log中。

两台服务器都是虚拟化的Wintels,64位Windows,64位Domino。我已经研究过xsp.properties,java.policy,它们是一样的。数据库由服务器签名。

谁可以解释一下?怎么检查?

编辑:

堆栈跟踪:

Page Name: /home.xsp
Control id: _id2
Script interpreter error, line=1, col=1: **[ReferenceError] 'app' not found
->   1: app['fld_DbHomeKey'].getUrl() + 'icons.css'**
com.ibm.xsp.exception.EvaluationExceptionEx: Error while executing JavaScript computed expression
    at com.ibm.xsp.binding.javascript.JavaScriptValueBinding.getValue(JavaScriptValueBinding.java:132)
    at com.ibm.xsp.page.compiled.ExpressionEvaluatorImpl.getBindingValue(ExpressionEvaluatorImpl.java:151)
    at xsp.OneUILayout$OneUILayoutPage.initIncluderAsRoot(OneUILayout.java:113)
    at com.ibm.xsp.page.compiled.AbstractCompiledPage.createTree(AbstractCompiledPage.java:249)
    at com.ibm.xsp.page.compiled.AbstractCompiledPage.addComponent(AbstractCompiledPage.java:389)
    at com.ibm.xsp.component.UIIncludeComposite.buildContents(UIIncludeComposite.java:453)
    at com.ibm.xsp.page.compiled.AbstractCompiledPage.initComponent(AbstractCompiledPage.java:334)
    at com.ibm.xsp.page.compiled.CompiledComponentBuilder.buildChildren(CompiledComponentBuilder.java:123)
    at com.ibm.xsp.page.compiled.CompiledComponentBuilder.buildAll(CompiledComponentBuilder.java:84)
    at com.ibm.xsp.component.UIViewRootEx.buildContents(UIViewRootEx.java:1649)
    at com.ibm.xsp.component.UIViewRootEx2.buildContents(UIViewRootEx2.java:246)
    at com.ibm.xsp.page.compiled.AbstractCompiledPage.initComponent(AbstractCompiledPage.java:334)
    at com.ibm.xsp.page.compiled.AbstractCompiledPage.createTree(AbstractCompiledPage.java:256)
    at com.ibm.xsp.page.compiled.AbstractCompiledPage.createViewRoot(AbstractCompiledPage.java:167)
    at com.ibm.xsp.application.ViewHandlerExImpl._createViewRoot(ViewHandlerExImpl.java:511)
    at com.ibm.xsp.application.ViewHandlerExImpl.createViewRoot(ViewHandlerExImpl.java:557)
    at com.ibm.xsp.application.ViewHandlerExImpl.doCreateView(ViewHandlerExImpl.java:141)
    at com.ibm.xsp.application.ViewHandlerEx.createView(ViewHandlerEx.java:90)
    at com.ibm.xsp.webapp.FacesServlet.serviceView(FacesServlet.java:238)
    at com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:200)
    at com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:160)
    at com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:137)
    at com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:103)
    at com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:576)
    at com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1267)
    at com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:847)
    at com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:796)
    at com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:565)
    at com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1251)
    at com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:598)
    at com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:421)
    at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:341)
    at com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:297)
    at com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:272)
Caused by: com.ibm.jscript.InterpretException: Script interpreter error, line=1, col=1: [ReferenceError] 'app' not found
    at com.ibm.jscript.types.FBSReferenceByName$UndefinedVariable.getValue(FBSReferenceByName.java:49)
    at com.ibm.jscript.ASTTree.InterpretResult.getFBSValue(InterpretResult.java:70)
    at com.ibm.jscript.ASTTree.ASTArrayMember.interpret(ASTArrayMember.java:96)
    at com.ibm.jscript.ASTTree.ASTMember.interpret(ASTMember.java:106)
    at com.ibm.jscript.ASTTree.ASTCall.interpret(ASTCall.java:88)
    at com.ibm.jscript.ASTTree.binaryop.ASTBinaryAdd.interpret(ASTBinaryAdd.java:93)
    at com.ibm.jscript.ASTTree.ASTProgram.interpret(ASTProgram.java:119)
    at com.ibm.jscript.ASTTree.ASTProgram.interpretEx(ASTProgram.java:139)
    at com.ibm.jscript.JSExpression._interpretExpression(JSExpression.java:435)
    at com.ibm.jscript.JSExpression.access$1(JSExpression.java:424)
    at com.ibm.jscript.JSExpression$2.run(JSExpression.java:414)
    at java.security.AccessController.doPrivileged(AccessController.java:284)
    at com.ibm.jscript.JSExpression.interpretExpression(JSExpression.java:410)
    at com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:251)
    at com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:234)
    at com.ibm.xsp.javascript.JavaScriptInterpreter.interpret(JavaScriptInterpreter.java:221)
    at com.ibm.xsp.javascript.JavaScriptInterpreter.interpret(JavaScriptInterpreter.java:193)
    at com.ibm.xsp.binding.javascript.JavaScriptValueBinding.getValue(JavaScriptValueBinding.java:78)
    ... 33 more

app是POJO bean实现Map,返回POJO对象,方法getUrl返回应用程序资源的基本url。无论如何,app没有被定义 - 它没有被实例化,因为faces-config有问题。

2 个答案:

答案 0 :(得分:1)

您的faces-config和xsp-config文件应位于src \ META-INF文件夹中,而不是插件的META-INF中。此外,您的插件应该有一个Library类。在该类文件中应该有两个方法,称为getXspConfigFiles()和getFacesConfigFiles()。这两个方法应该包含一个String数组,列出所有的xsp-config和faces-config文件,然后这些文件将可用于任何包含插件作为Application Properties \ Advanced \ XPage Libraries中的资源的应用程序。如果您的插件没有显示,请确保安装到Domino Designer中的该插件jar文件的副本,并且当您在服务器控制台上发出“tell http ss osgi com.yournamespace”命令时,服务器会识别您的插件。在服务器的结果输出中,它应该说“<<< LAZY>>”,“ACTIVE”或“RESOLVED”而不是“INSTALLED”,因为只是说插件在服务器上但没有加载。

答案 1 :(得分:0)

我认为它可能是一个行分隔符问题 - 不知道但只是大声思考。服务器是否在不同的平台上?