Orbeon 3.9 Liferay代理portlet java.lang.NullPointerException任何用户交互错误

时间:2012-07-16 14:58:19

标签: forms liferay portlet orbeon

我正在尝试将Orbeon Forms 3.91 PE与Liferay 6.0.6集成。 我安装了Liferay,部署了orbeon.war,orbeon-proxy-portlet.war,复制了许可文件并创建了一个file-local.xml属性(如wiki中所述)。

使用表单生成器我创建了一个表单(默认内容(一个输入字段))。

接下来我在Liferay中添加了两个包含portlet表单的页面: - 我的表格一名选手 - 第二种形式是指“联系”形式(默认形式)。

与我的表单集成后(例如尝试保存表单)我收到错误:

ERROR ProcessorService  - Exception at line 55, column 65 of oxf:/ops/xforms/xforms-server.xpl (reading processor output: name='response', id='xforms-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:664)
    at org.orbeon.oxf.processor.pipeline.PipelineProcessor.executeChildren(PipelineProcessor.java:729)
    at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:661)
    at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor.start(ConcreteChooseProcessor.java:248)
    at org.orbeon.oxf.processor.pipeline.PipelineProcessor$5.run(PipelineProcessor.java:664)
    at org.orbeon.oxf.processor.pipeline.PipelineProcessor.executeChildren(PipelineProcessor.java:729)
    at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:661)
    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.coyote.http11.Http11Processor.process(Http11Processor.java:857)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:619)

看起来像AJAX错误和问题会话管理。

在移动以形成“联系”并与之交互后,我收到错误:

[file:/C:/liferay-portal-6.0.6/tomcat-6.0.29/temp/upload__1b3fa11c_1388fbc4805__7ff4_00000095.tmp|null|null|000|true|false|false|false|[false|true|false|false|false|false]]
2012-07-16 14:47:20,240 ERROR ProcessorService  - Exception at line 55, column 65 of oxf:/ops/xforms/xforms-server.xpl (reading processor output: name='response', id='xforms-response')
org.orbeon.oxf.common.OXFException: Session has expired. Unable to process incoming request.
    at org.orbeon.oxf.xforms.state.XFormsStateManager.checkUUIDInSession(XFormsStateManager.java:94)
    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:664)
    at org.orbeon.oxf.processor.pipeline.PipelineProcessor.executeChildren(PipelineProcessor.java:729)
    at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:661)
    at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor.start(ConcreteChooseProcessor.java:248)
    at org.orbeon.oxf.processor.pipeline.PipelineProcessor$5.run(PipelineProcessor.java:664)
    at org.orbeon.oxf.processor.pipeline.PipelineProcessor.executeChildren(PipelineProcessor.java:729)
    at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:661)
    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.coyote.http11.Http11Processor.process(Http11Processor.java:857)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:619)

从那时起,这个错误也会出现在我的表单上(第一个)。

根据Firebug标头包含JSESSIONID (我无法附加图片

Response:
Cache-Control   private, max-age=0
Content-Length  2299
Content-Type    application/xml;charset=utf-8
Date    Mon, 16 Jul 2012 14:47:20 GMT
Expires Mon, 16 Jul 2012 14:47:20 GMT
Last-Modified   Mon, 16 Jul 2012 14:47:20 GMT
Server  Apache-Coyote/1.1
Request:
Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language pl,en-us;q=0.7,en;q=0.3
Connection  keep-alive
Content-Length  409
Content-Type    application/xml; charset=UTF-8
Cookie  JSESSIONID=BD09C08F33458793AB9DB94057DF7BDF; GUEST_LANGUAGE_ID=en_US; COOKIE_SUPPORT=true
Host    localhost:8080
Referer http://localhost:8080/web/guest/contact
User-Agent  Mozilla/5.0 (Windows NT 5.1; rv:13.0) Gecko/20100101 Firefox/13.0.1
X-Requested-With    XMLHttpRequest

我该如何解决? (来自localhost的两种形式:8080 / orbeon正常工作)。

1 个答案:

答案 0 :(得分:0)

遗憾的是,代理portlet在3.9.1中被破坏了。从那个版本开始,我们已经实现了对portlet的许多修复和改进,代理portlet应该与Orbeon Forms 4.0 M7一起使用。