Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Orbeon 3.9任何与表单的用户交互都会触发java.lang.NullPointerException错误_Php_Apache_Tomcat_Orbeon_Mod Jk - Fatal编程技术网

Php Orbeon 3.9任何与表单的用户交互都会触发java.lang.NullPointerException错误

Php Orbeon 3.9任何与表单的用户交互都会触发java.lang.NullPointerException错误,php,apache,tomcat,orbeon,mod-jk,Php,Apache,Tomcat,Orbeon,Mod Jk,我们有一个PHP应用程序,在后台使用Orbeon向用户显示表单, 最近,我们不得不为8080端口被阻塞的用户提供解决方案,因此我们安装了jk_mod,在vhost文件中为Tomcat webapps提供服务,如下所示: JkMount /orbeon/* geronimo_ajp13 JkMount /ops/* geronimo_ajp13 用户可以打开Orbeon文档,但一旦执行任何Orbeon操作(在表中单击、提交表单等),就会出现以下Orbeon错误: 以下是触发Orbeon操作时我

我们有一个PHP应用程序,在后台使用Orbeon向用户显示表单, 最近,我们不得不为8080端口被阻塞的用户提供解决方案,因此我们安装了jk_mod,在vhost文件中为Tomcat webapps提供服务,如下所示:

JkMount /orbeon/* geronimo_ajp13
JkMount /ops/* geronimo_ajp13
用户可以打开Orbeon文档,但一旦执行任何Orbeon操作(在表中单击、提交表单等),就会出现以下Orbeon错误:

以下是触发Orbeon操作时我的Firebug响应(200 ok):

    2012-06-21 12:19:21,796 INFO  ProcessorService  - /xforms-server - Received request
2012-06-21 12:19:21,866 ERROR ProcessorService  - Exception at line 55, column 65 of oxf:/ops/xforms/xforms-server.xpl (reading processor output: name='response', id='x
forms-response')
java.lang.NullPointerException
        at org.orbeon.oxf.xforms.state.XFormsStateManager.checkUUIDInSession(XFormsStateManager.java:92)
        at org.orbeon.oxf.xforms.state.XFormsStateManager.findOrRestoreDocument(XFormsStateManager.java:277)
        at org.orbeon.oxf.xforms.processor.XFormsServer.doIt(XFormsServer.java:152)
        at org.orbeon.oxf.xforms.processor.XFormsServer.access$000(XFormsServer.java:56)
        at org.orbeon.oxf.xforms.processor.XFormsServer$1.readImpl(XFormsServer.java:88)
        at org.orbeon.oxf.processor.impl.ProcessorOutputImpl$TopLevelOutputFilter.read(ProcessorOutputImpl.java:263)
        at org.orbeon.oxf.processor.impl.ProcessorOutputImpl.read(ProcessorOutputImpl.java:406)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:260)
        at org.orbeon.oxf.processor.pipeline.TeeProcessor$TeeProcessorOutputImpl.readImpl(TeeProcessor.java:89)
        at org.orbeon.oxf.processor.impl.ProcessorOutputImpl$TopLevelOutputFilter.read(ProcessorOutputImpl.java:263)
        at org.orbeon.oxf.processor.impl.ProcessorOutputImpl.read(ProcessorOutputImpl.java:406)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:260)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsTinyTree(ProcessorImpl.java:286)
        at org.orbeon.oxf.processor.ProcessorImpl$3.read(ProcessorImpl.java:315)
        at org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsObject(ProcessorImpl.java:365)
        at org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsObject(ProcessorImpl.java:330)
        at org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsTinyTree(ProcessorImpl.java:313)
        at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor.start(ConcreteChooseProcessor.java:186)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$5.run(PipelineProcessor.java:661)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.executeChildren(PipelineProcessor.java:726)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:658)
        at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor.start(ConcreteChooseProcessor.java:248)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$5.run(PipelineProcessor.java:661)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.executeChildren(PipelineProcessor.java:726)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:658)
        at org.orbeon.oxf.pipeline.InitUtils.runProcessor(InitUtils.java:89)
        at org.orbeon.oxf.webapp.ProcessorService.service(ProcessorService.java:97)
        at org.orbeon.oxf.servlet.OrbeonServletDelegate.service(OrbeonServletDelegate.java:133)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
        at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
        at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
        at java.lang.Thread.run(Thread.java:636)

下面是触发的orbeon.log错误:

    2012-06-21 12:19:21,796 INFO  ProcessorService  - /xforms-server - Received request
2012-06-21 12:19:21,866 ERROR ProcessorService  - Exception at line 55, column 65 of oxf:/ops/xforms/xforms-server.xpl (reading processor output: name='response', id='x
forms-response')
java.lang.NullPointerException
        at org.orbeon.oxf.xforms.state.XFormsStateManager.checkUUIDInSession(XFormsStateManager.java:92)
        at org.orbeon.oxf.xforms.state.XFormsStateManager.findOrRestoreDocument(XFormsStateManager.java:277)
        at org.orbeon.oxf.xforms.processor.XFormsServer.doIt(XFormsServer.java:152)
        at org.orbeon.oxf.xforms.processor.XFormsServer.access$000(XFormsServer.java:56)
        at org.orbeon.oxf.xforms.processor.XFormsServer$1.readImpl(XFormsServer.java:88)
        at org.orbeon.oxf.processor.impl.ProcessorOutputImpl$TopLevelOutputFilter.read(ProcessorOutputImpl.java:263)
        at org.orbeon.oxf.processor.impl.ProcessorOutputImpl.read(ProcessorOutputImpl.java:406)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:260)
        at org.orbeon.oxf.processor.pipeline.TeeProcessor$TeeProcessorOutputImpl.readImpl(TeeProcessor.java:89)
        at org.orbeon.oxf.processor.impl.ProcessorOutputImpl$TopLevelOutputFilter.read(ProcessorOutputImpl.java:263)
        at org.orbeon.oxf.processor.impl.ProcessorOutputImpl.read(ProcessorOutputImpl.java:406)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:260)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsTinyTree(ProcessorImpl.java:286)
        at org.orbeon.oxf.processor.ProcessorImpl$3.read(ProcessorImpl.java:315)
        at org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsObject(ProcessorImpl.java:365)
        at org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsObject(ProcessorImpl.java:330)
        at org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsTinyTree(ProcessorImpl.java:313)
        at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor.start(ConcreteChooseProcessor.java:186)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$5.run(PipelineProcessor.java:661)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.executeChildren(PipelineProcessor.java:726)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:658)
        at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor.start(ConcreteChooseProcessor.java:248)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$5.run(PipelineProcessor.java:661)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.executeChildren(PipelineProcessor.java:726)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:658)
        at org.orbeon.oxf.pipeline.InitUtils.runProcessor(InitUtils.java:89)
        at org.orbeon.oxf.webapp.ProcessorService.service(ProcessorService.java:97)
        at org.orbeon.oxf.servlet.OrbeonServletDelegate.service(OrbeonServletDelegate.java:133)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
        at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
        at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
        at java.lang.Thread.run(Thread.java:636)

有人知道发生了什么吗?

该错误清楚地表明会话cookie由于某种原因没有传播。我将对此进行检查。

该错误清楚地表明会话cookie由于某种原因未被传播。我会查一查。

嗨,我今天在饼干上玩了好一阵子(看起来很可疑,这是真的),但至少我现在知道要深入研究一下,谢谢你的线索!我们的Orbeon Ajax请求头显示“Expires”与“Date”相同,在使用Apache的mod_jk之前,这些值确实有所不同(当一切顺利进行时),这是否意味着Orbeon Ajax请求立即超时?如果是,您知道我们可以在哪里手动将“Expires”值设置为未来时间吗?谢谢,我们已经花了一周的时间试图解决这个问题,我们真的被卡住了…Expires==Date对于Ajax请求来说是正常的,因为浏览器缓存Ajax请求的结果是没有意义的。我真的不认为这是你麻烦的根源。但是,您可能需要检查浏览器在这些Ajax请求中是否正确发送了JSESSIONID。该标头是缓存标头,而不是超时标头。把它定在未来的日期是错误的。这意味着Ajax请求是POST,缓存不适用于POST。为了解决这个问题,除了JSESSIONID值之外,我还必须将Cookie路径设置为/orbeon/xforms服务器,现在一切都像一个符咒一样工作,PHP代码就是这样的:
setcookie('JSESSIONID',不带分号的JSESSIONID值,time()+3600*24*2,/orbeon/xforms server');
谢谢!您好,今天在Cookie上玩了好一阵子(看起来很可疑,这是真的),但至少我现在知道要深入研究一下,谢谢您提供的线索!我们的orbeon Ajax请求头显示“Expires”与“Date”相同,在使用Apache的mod_jk之前,这些值确实有所不同(当一切都顺利运行时),这是否意味着Orbeon Ajax请求立即超时?如果是,您知道我们可以在哪里手动设置“Expires”吗未来时间的价值?谢谢,我们正在努力解决这个问题一周了,我们真的被卡住了…Expires==Date对于Ajax请求来说是正常的,因为浏览器缓存Ajax请求的结果是没有意义的。我真的不认为这是您的问题的根源。但是您可能需要检查JSSessionID是否为c浏览器在这些Ajax请求中正确地发送了这些消息。没错。该消息头是缓存消息头,而不是超时消息头。将其设置为未来日期是错误的。这表示Ajax请求是帖子,缓存不适用。为了解决此问题,除了JSESSIONID值外,我还必须将Cookie路径设置为/orbeon/xforms服务器,现在它就像一个魔咒一样工作,PHP代码应该是这样的:
setcookie('JSESSIONID',JSESSIONID的值,不带分号,time()+3600*24*2,/orbeon/xforms server');
谢谢!