My Oracle Support Banner

从Task Flow 的 jspx 文件创建Portlet 显示在页面时出现 "Remote Portlet Error" (Doc ID 2129420.1)

Last updated on MARCH 22, 2019

适用于:

Oracle WebCenter Portal - 版本 11.1.1.8.3 和更高版本
本文档所含信息适用于所有平台

症状

当通过按F5键刷新浏览器页面时, 页面上的  Portlet 区域显示 "Remote Portlet Error". 如果事先点击过页面上的按钮, 这个问题就不会出现. 在 JDeveloper 里面创建 Task Flow 和 Portlet 的过程概述如下.

  1. 创建一个新的 Fusion Web Application(ADF).
  2. 在 Application Navigator, 鼠标右键点击 ViewController 工程, 弹出菜单选择 "New->Web Tier -> JSF -> ADF Task Flow", 点击 "OK" 打开"Create Task Flow'对话框, 不选择 "Create with Page Fragments". 这意味着这个 Task Flow 的试图View默认将使用 .jspx 文件. 点击 "OK" 创建 Task Flow.
  3. 从组件面板Component Palette拖拽一个view放入 Task Flow. 鼠标双击 View 图标打开 "Create JSF page" 对话框, 缺省创建一个 "view1.jspx".
  4. 编辑 view1.jspx, 加入 read only table. 可以使用一个 Placeholder Data Control 绑定到这个 table.
  5. 在 Application Navigator, 鼠标右键点击 Task Flow 的 view1.jspx, 弹出菜单选择"Create Portlet Entry". 后面的向导窗口都使用缺省选项, 保存所有变更.
  6. 部署应用到 server WC_Portlet.
  7. 登录 em console, 注册 portlet producer.
  8. 登录 /webcenter, 创建一个新page并把刚注册的 Portlet 加入 page.
  9. 保存并察看 page.
  10. 按键 F5 页面刷新, portlet 区域显示 "Remote Portlet Error".

WC_Portlet_diagnotic.log 里面可以看到 exception:

[2015-12-08T18:03:21.276-05:00] [WC_Portlet] [ERROR] [ADFC-50016] [oracle.adfinternal.controller.application.AdfcExceptionHandler] [tid: [ACTIVE].ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: <USER ID>] [ecid: <ECID>] [APP: <APP NAME>] [J2EE_APP.name: <J2EE APP NAME>] [J2EE_MODULE.name: <J2EE MODULE NAME>] [WEBSERVICE.name: <WEBSERVICE NAME>] [WEBSERVICE_PORT.name: <WEBSERVICE PORT NAME>] [DSID: <DSID>] ADFc: While handling an exception the application's exception handler threw a new exception.[[java.lang.NullPointerException
at oracle.portlet.bridge.adf.lifecycle.ADFBridgePhaseListener.afterPhase(ADFBridgePhaseListener.java:76)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:520)
at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:207)
at org.apache.myfaces.portlet.faces.bridge.BridgeImpl.doFacesRender(BridgeImpl.java:1009)
at org.apache.myfaces.portlet.faces.bridge.BridgeImpl.doFacesRequest(BridgeImpl.java:917)
at javax.portlet.faces.GenericFacesPortlet.doBridgeDispatch(GenericFacesPortlet.java:672)
at javax.portlet.faces.GenericFacesPortlet.doRenderDispatchInternal(GenericFacesPortlet.java:638)
at javax.portlet.faces.GenericFacesPortlet.doView(GenericFacesPortlet.java:274)
at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:328)
at javax.portlet.faces.GenericFacesPortlet.doDispatch(GenericFacesPortlet.java:245)
at javax.portlet.GenericPortlet.render(GenericPortlet.java:233)
at oracle.portlet.bridge.adf.application.ADFBridgePortlet.render(ADFBridgePortlet.java:
.....
at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:163)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:60)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3748)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3714)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2283)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2182)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1491)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

 

原因

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


文档内容
症状
原因
解决方案
参考

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.