部署到oc4j容器时,JSF Faces Bridge会获得java.lang.NullPointerException

时间:2009-05-01 18:57:00

标签: oracle jsf portlet oracle-adf

我正在使用预先配置的web4ter oc4j运行JDeveloper 10.1.3.4。 我正在尝试将一个vanilla JSF webcenter项目推向市场。

  1. 我使用webcenter应用程序模板创建应用程序。
  2. 添加一个JSF JSP,简称为index,包含所有默认值。
  3. 添加部署配置文件并部署到本地oc4j
  4. 导航到jsf页面,一切正常。
  5. 右键单击ViewController并添加库Portlet Faces Bridge
  6. 右键单击ViewController并添加Portlet部署描述符。
  7. 使用link text

  8. 中的值编辑portlet.xml 在portlet.xml中的
  9. 我用我的/index.jspx

    替换默认页面视图

    当我尝试部署到本地oc4j时,我得到了以下

  10.   

    ----部署开始了。 ---- 2009年5月1日下午2:29:37目标平台是   独立OC4J 10g 10.1.3   (localAppServer)。写了WAR文件给   C:\ jdevstudio10134 \的jdev \ MYWORK \测试\视图控制器\部署\ webapp2.war   写了EAR文件到   C:\ jdevstudio10134 \的jdev \ MYWORK \测试\视图控制器\部署\ webapp2.ear   备份通用归档文件   :/ C:/jdevstudio10134/jdev/mywork/test/ViewController/deploy/webapp2_generic.ear   为WSRP创建WSDL   WSRP的应用程序WSDL   应用程序已创建   正在上传文件webapp2.ear ...   正在上传文件webapp2.ear ...   webapp2的Application Deployer   开始。将存档复制到   C:\ jdevstudio10134 \ J2EE \家\应用程序\ webapp2.ear   初始化   C:\ jdevstudio10134 \ J2EE \家\应用程序\ webapp2.ear   开始......解压缩webapp2.ear完成   解压缩webapp2.ear解压缩   webapp2.war完成解压缩webapp2.war   初始化   C:\ jdevstudio10134 \ J2EE \家\应用程序\ webapp2.ear   结束...开始申请:webapp2   初始化ClassLoader(s)   应用程序:webapp2失败   状态操作失败并显示错误:   显示java.lang.NullPointerException

         

    部署失败经过的时间   部署:3秒

         部署不完整。 #### 2009年5月1日下午2:29:40

    如果我手动部署WAR文件并导航到该页面,我会收到500内部服务器错误。

      

    09/05/01 14:49:21.984 webapp2:Servlet   错误java.lang.NullPointerException       at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:346)       at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:152)       at oracle.portlet.server.bridges.jsf.PortletViewHandlerImpl.renderView(PortletViewHandlerImpl.java:73)       at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:107)       at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:268)       在com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:137)       在javax.faces.webapp.FacesServlet.service(FacesServlet.java:214)       at com.evermind [Oracle Containers for J2EE 10g(10.1.3.4.0)   ] .server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher       的.java:713)       at com.evermind [Oracle Containers for J2EE 10g(10.1.3.4.0)   ] .server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher       的.java:370)       at com.evermind [Oracle Containers for J2EE 10g(10.1.3.4.0)   ] .server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler       的.java:871)       at com.evermind [Oracle Containers for J2EE 10g(10.1.3.4.0)   ] .server.http.HttpRequestHandler.processRequest(HttpRequestHandler       的.java:453)       at com.evermind [Oracle Containers for J2EE 10g(10.1.3.4.0)   ] .server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler       的.java:221)       at com.evermind [Oracle Containers for J2EE 10g(10.1.3.4.0)   ] .server.http.HttpRequestHandler.run(HttpRequestHandler.java:122)       at com.evermind [Oracle Containers for J2EE 10g(10.1.3.4.0)   ] .server.http.HttpRequestHandler.run(HttpRequestHandler.java:111)       at oracle.oc4j.network.ServerSocketReadHandler $ SafeRunnable.run(ServerSocketReadHandler.java:260)       at com.evermind [Oracle Containers for J2EE 10g(10.1.3.4.0)   ] .util.ReleasableResourcePooledExecutor $ MyWorker.run(ReleasableResourcePooledExecutor       的.java:303)       在java.lang.Thread.run(Thread.java:595)

    我的portlet.xml文件看起来像

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <portlet-app version="1.0" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd">
     <portlet> 
         <description>myapp</description> 
         <portlet-name>test</portlet-name> 
         <display-name>myapp</display-name> 
         <portlet-class>oracle.portlet.server.bridges.jsf.FacesPortlet 
         </portlet-class> 
         <init-param> 
          <name>DefaultPage.view</name>
          <value>/index.jspx</value>
         </init-param> 
         <init-param> 
          <name>BridgeLifecycleListeners</name>
          <value>
           oracle.portlet.server.bridges.jsf.adf.ADFFacesBridgeLifecycleListener,
           oracle.portlet.server.bridges.jsf.adf.BindingFacesBridgeLifecycleListener
          </value>
         </init-param> 
        <supports> 
         <mime-type>text/html</mime-type> 
         <portlet-mode>VIEW</portlet-mode> 
         </supports> 
         <supported-locale>en</supported-locale> 
         <portlet-info> 
          <title>myapp</title> 
          <short-title>test</short-title> 
         </portlet-info> 
       </portlet> 
    </portlet-app>
    

    ...如果我删除文件并重新部署jspx页面工作正常。

1 个答案:

答案 0 :(得分:0)

你应该转到使用wls的jdev 11g,它比oc4j好得多。