2013-12-24 71 views
0

使用RichFaces標籤我公司開發的RichFaces的門戶,我已經在Liferay中部署它。我無法在liferay中使用ui標籤。它使用jsf標籤正常工作。我已經給出了下面的代碼。有人可以告訴我爲什麼我無法使用liferay portlet中的標籤。我需要爲它添加罐子嗎?無法在Liferay中

home.xhtml

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:f="http://java.sun.com/jsf/core" 
     xmlns:a4j="http://richfaces.org/a4j" 
     xmlns:rich="http://richfaces.org/rich" 
     xmlns:c="http://java.sun.com/jsp/jstl/core" 
     xmlns:ui="http://java.sun.com/jsf/facelets" 
     > 
    <ui:composition template="/WEB-INF/jsp/common/MAINWeb.xhtml"> 
     <ui:define name="hometab"> 
       <ui:include src="/WEB-INF/jsp/content/homecontent.xhtml" /> 
     </ui:define>  
     <ui:define name="jsFunctions"> 
      <h:form> 
       <a4j:jsFunction action="#{UserAction.init}" name="getLoadOfficeInfo" render="mainFormContent"/> 

      </h:form> 
      <script type="text/javascript"> 
      //<![CDATA[ 
       getLoadOfficeInfo(); 

      //]]> 
      </script> 
     </ui:define> 
     <ui:define name="fileTracktab"> 
      <ui:include src="/pages/design/fileTracking/FileInbox.xhtml" /> 
     </ui:define> 
    </ui:composition> 
</html> 

Web.xml中

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
    <description>Portlet SampleRichfces</description> 
    <display-name>SAMPLERICHFCES PORTLET</display-name> 
    <welcome-file-list> 
     <welcome-file>/index.xhtml</welcome-file> 
     <welcome-file>faces/en/index.xhtml</welcome-file> 
    <welcome-file>faces/fr/index.xhtml</welcome-file> 
    </welcome-file-list> 
    <context-param> 
     <param-name>SAMPLERICHFCES.versionNumber</param-name> 
     <param-value>0.0.38</param-value> 
    </context-param> 

    <context-param> 
     <param-name>javax.faces.application.CONFIG_FILES</param-name> 
     <param-value>/WEB-INF/faces-config.xml</param-value> 
    </context-param> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/main-applicationContext.xml</param-value> 
    </context-param> 

    <context-param> 
     <param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name> 
     <param-value>true</param-value> 
    </context-param> 
    <context-param> 
    <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name> 
     <param-value>org.jboss.portletbridge.application.FaceletPortletViewHandler</param-value> 
    </context-param> 

    <context-param> 
    <param-name>javax.portlet.faces.renderPolicy</param-name> 
    <param-value>ALWAYS_DELEGATE</param-value> 
    </context-param> 

    <context-param> 
     <param-name>javax.faces.STATE_SAVING_METHOD</param-name> 
     <param-value>server</param-value> 
    </context-param> 
    <context-param> 
     <param-name>com.sun.faces.numberOfViewsInSession</param-name> 
     <param-value>5</param-value> 
    </context-param> 
    <context-param> 
     <param-name>com.sun.faces.numberOfLogicalViews</param-name> 
     <param-value>10</param-value> 
    </context-param> 
    <context-param> 
     <param-name>javax.portlet.faces.RENDER_POLICY</param-name> 
     <param-value>ALWAYS_DELEGATE</param-value> 
    </context-param> 

    <context-param> 
     <param-name>org.richfaces.LoadStyleStrategy</param-name> 
     <param-value>ALL</param-value> 
    </context-param> 
    <context-param> 
     <param-name>org.richfaces.LoadScriptStrategy</param-name> 
     <param-value>ALL</param-value> 
    </context-param> 

    <context-param> 
     <param-name>org.richfaces.skin</param-name> 
     <param-value>blueSky</param-value> 
    </context-param> 
    <context-param> 
     <param-name>org.richfaces.CONTROL_SKINNING</param-name> 
     <param-value>basic</param-value> 
    </context-param> 
    <context-param> 
     <param-name>com.sun.faces.autoCompleteOffOnViewState</param-name> 
     <param-value>false</param-value> 
    </context-param> 
    <listener> 
     <listener-class>com.sun.faces.config.ConfigureListener</listener-class> 
    </listener> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
    <listener> 
     <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> 
    </listener> 
    <servlet> 
     <servlet-name>Resource Servlet</servlet-name> 
     <servlet-class>org.richfaces.webapp.ResourceServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>Resource Servlet</servlet-name> 
     <url-pattern>/org.richfaces.resources/*</url-pattern> 
    </servlet-mapping> 

    <context-param> 
     <param-name>org.ajax4jsf.cache.LRU_MAP_CACHE_SIZE</param-name> 
     <param-value>2048</param-value> 
    </context-param> 
    <context-param> 
     <param-name>facelets.REFRESH_PERIOD</param-name> 
     <param-value>0</param-value> 
    </context-param> 
    <context-param> 
     <param-name>facelets.DEVELOPMENT</param-name> 
     <param-value>true</param-value> 
    </context-param> 

    <context-param> 
     <param-name>javax.faces.FACELETS_VIEW_MAPPINGS</param-name> 
     <param-value>*.xhtml</param-value> 
    </context-param> 

    <context-param> 
     <param-name>org.ajax4jsf.RESOURCE_URI_PREFIX</param-name> 
     <param-value>rfRes</param-value> 
    </context-param> 
    <context-param> 
    <param-name>org.richfaces.resourceMapping.enabled</param-name> 
    <param-value>true</param-value> 
    </context-param> 
    <!-- JSF --> 
    <context-param> 
     <param-name>javax.faces.LIFECYCLE_ID</param-name> 
     <param-value>FIX_PORTLET_LIFECYCLE</param-value> 
    </context-param> 
    <context-param> 
     <param-name>javax.faces.DEFAULT_SUFFIX</param-name> 
     <param-value>.xhtml</param-value> 
    </context-param> 
    <servlet> 
     <servlet-name>Faces Servlet</servlet-name> 
     <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>Faces Servlet</servlet-name> 
     <url-pattern>/faces/*</url-pattern> 
    </servlet-mapping> 


    <servlet-mapping> 
     <servlet-name>Faces Servlet</servlet-name> 
     <url-pattern>/faces/en/*</url-pattern> 
    </servlet-mapping> 

    <servlet-mapping> 
     <servlet-name>Faces Servlet</servlet-name> 
     <url-pattern>*.xhtml</url-pattern> 
    </servlet-mapping> 
    <servlet> 
     <servlet-name>DownloadFileServlet</servlet-name> 
     <servlet-class>org.gov.main.common.DownloadFileServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>DownloadFileServlet</servlet-name> 
     <url-pattern>/faces/downloadFile</url-pattern> 
    </servlet-mapping> 
    <error-page> 
     <exception-type>javax.faces.application.ViewExpiredException</exception-type> 
     <location>/pages/common/logout.xhtml</location> 
    </error-page> 
    <error-page> 
     <error-code>404</error-code> 
     <location>/404.html</location> 
    </error-page> 
    <error-page> 
     <error-code>500</error-code> 
     <location>/500.html</location> 
    </error-page> 
    <session-config> 
     <session-timeout>120</session-timeout> 
    </session-config> 
</web-app> 

的portlet.xml

<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" version="2.0"> 

    <portlet id="AprovisionamientoMantenimiento"> 
    <description>SampleRichfces</description> 
    <portlet-name>SAMPLERICHFCES</portlet-name> 
    <display-name>SAMPLERICHFCES</display-name> 
    <portlet-class>javax.portlet.faces.GenericFacesPortlet</portlet-class> 

    <init-param> 
     <name>javax.portlet.faces.defaultViewId.view</name> 
     <value>/index.xhtml</value> 
    </init-param> 

    <init-param> 
     <name>javax.portlet.faces.preserveActionParams</name> 
     <value>true</value> 
    </init-param> 

    <expiration-cache>-0</expiration-cache> 
    <supports> 
      <mime-type>text/html</mime-type> 
      <portlet-mode>view</portlet-mode> 
    </supports> 

    <portlet-info> 
     <title>SAMPLERICHFCES</title> 
     <short-title>SAMPLERICHFCES</short-title> 
    </portlet-info> 

    <security-role-ref> 
     <role-name>user</role-name> 
    </security-role-ref> 
    </portlet> 

</portlet-app> 

面孔,config.xhtml

<?xml version='1.0' encoding='UTF-8'?> 

<!-- =========== FULL CONFIGURATION FILE ================================== --> 

    <faces-config xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" 
     version="2.0"> 
     <managed-bean> 
     <managed-bean-name>TestBean</managed-bean-name> 
     <managed-bean-class>test.TestBean</managed-bean-class> 
     <managed-bean-scope>session</managed-bean-scope> 
     </managed-bean> 
     <application> 
      <message-bundle>i18nFaces</message-bundle> 
      <resource-bundle> 
       <base-name>i18n</base-name> 
       <var>i18n</var> 
      </resource-bundle> 
     </application> 
     <navigation-rule> 
     <from-view-id>*</from-view-id>  
     <navigation-case> 
     <from-outcome>user</from-outcome> 
     <to-view-id>/pages/design/UserHome.xhtml</to-view-id> 
     <redirect/> 
     </navigation-case> 
    </navigation-rule> 

    <navigation-rule> 
     <from-view-id>*</from-view-id>  
     <navigation-case> 
     <from-outcome>administration</from-outcome> 
     <to-view-id>/pages/design/AdministrationHome.xhtml</to-view-id> 
     <redirect/> 
     </navigation-case> 
    </navigation-rule> 

    <navigation-rule> 
     <from-view-id>*</from-view-id>  
     <navigation-case> 
     <from-outcome>composeNoting</from-outcome> 
     <to-view-id>/pages/design/fileTracking/Noting.xhtml</to-view-id> 
     </navigation-case> 
    </navigation-rule> 
    <navigation-rule> 
     <from-view-id>*</from-view-id>  
     <navigation-case> 
     <from-outcome>tank</from-outcome> 
     <to-view-id>/pages/design/asset/TankDetails.xhtml</to-view-id> 
     </navigation-case> 
    </navigation-rule> 
    <navigation-rule> 
     <from-view-id>*</from-view-id>  
     <navigation-case> 
     <from-outcome>interDepartmentLetter</from-outcome> 
     <to-view-id>/pages/design/fileTracking/InterDepartmentThapalSection.xhtml</to-view-id> 
     </navigation-case> 
    </navigation-rule> 
    <navigation-rule> 
     <from-view-id>*</from-view-id>  
     <navigation-case> 
     <from-outcome>fileInboxStatus</from-outcome> 
     <to-view-id>/pages/design/fileTracking/FileInbox.xhtml</to-view-id> 
     </navigation-case> 
    </navigation-rule> 
    <navigation-rule> 
     <from-view-id>*</from-view-id>  
     <navigation-case> 
     <from-outcome>interDepartmentLetter</from-outcome> 
     <to-view-id>/pages/design/fileTracking/InterDepartmentThapalSection.xhtml</to-view-id> 
     </navigation-case> 
    </navigation-rule> 
    <navigation-rule> 
     <from-view-id>*</from-view-id>  
     <navigation-case> 
     <from-outcome>login</from-outcome> 
     <to-view-id>/pages/design/login.xhtml</to-view-id> 
     <redirect/> 
     </navigation-case> 
    </navigation-rule> 
    <navigation-rule> 
     <from-view-id>*</from-view-id>  
     <navigation-case> 
     <from-outcome>blocked</from-outcome> 
     <to-view-id>/pages/design/UserBlock.xhtml</to-view-id> 
     <redirect/> 
     </navigation-case> 
    </navigation-rule> 
    <navigation-rule> 
     <from-view-id>*</from-view-id>  
     <navigation-case> 
     <from-outcome>admin</from-outcome> 
     <to-view-id>/pages/design/AdminHome.xhtml</to-view-id> 
     <redirect/> 
     </navigation-case> 
    </navigation-rule> 
    <navigation-rule> 
     <from-view-id>*</from-view-id> 
     <navigation-case> 
      <from-outcome>committee</from-outcome> 
      <to-view-id>/pages/design/CommitteeHome.xhtml</to-view-id> 
       <redirect/> 
     </navigation-case> 
    </navigation-rule> 
    <navigation-rule> 
     <from-view-id>*</from-view-id> 
     <navigation-case> 
      <from-outcome>committeedetail</from-outcome> 
      <to-view-id>/pages/design/committee/Committee.xhtml</to-view-id> 
     </navigation-case> 
    </navigation-rule> 
    <navigation-rule> 
     <from-view-id>*</from-view-id>  
     <navigation-case> 
     <from-outcome>home</from-outcome> 
     <to-view-id>/pages/design/home.xhtml</to-view-id> 
     <redirect/> 
     </navigation-case> 
    </navigation-rule> 
    <navigation-rule> 
     <from-view-id>*</from-view-id>  
     <navigation-case> 
     <from-outcome>TaskManager</from-outcome> 
     <to-view-id>/pages/design/CommitteeHome.xhtml</to-view-id> 
     <redirect/> 
     </navigation-case> 
    </navigation-rule> 
    <navigation-rule> 
     <from-view-id>*</from-view-id>  
     <navigation-case> 
     <from-outcome>pertcpm</from-outcome> 
     <to-view-id>/pages/design/projectManagement/PertCpm.xhtml</to-view-id> 
     <redirect/> 
     </navigation-case> 
    </navigation-rule> 

    <navigation-rule> 
     <from-view-id>*</from-view-id>  
     <navigation-case> 
     <from-outcome>login</from-outcome> 
     <to-view-id>/pages/design/login.xhtml</to-view-id> 
     <redirect/> 
     </navigation-case> 
    </navigation-rule> 
    <application> 
     <locale-config> 
     <default-locale>en</default-locale> 
     <supported-locale>en</supported-locale> 
     <supported-locale>fr</supported-locale> 
     </locale-config> 

     <message-bundle>org.gov.main.resources.main_messages</message-bundle> 
     <resource-bundle> 
     <base-name>org.gov.main.resources.main_messages</base-name> 
     <var>msg</var> 
     </resource-bundle> 
    </application> 
    </faces-config> 

例外stackrace

java.lang.IllegalStateException: Could not find backup for factory javax.faces.render.RenderKitFactory. 
java.lang.IllegalStateException: Could not find backup for factory javax.faces.render.RenderKitFactory. 
    at javax.faces.FactoryFinder$FactoryManager.getFactory(FactoryFinder.java:1011) 
    at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:343) 
    at com.sun.faces.context.FacesContextImpl.<init>(FacesContextImpl.java:128) 
    at com.sun.faces.context.FacesContextFactoryImpl.getFacesContext(FacesContextFactoryImpl.java:93) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:583) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196) 
    at com.liferay.portal.servlet.filters.etag.ETagFilter.processFilter(ETagFilter.java:45) 
    at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123) 
    at com.liferay.portal.kernel.servlet.PortalClassLoaderFilter.doFilter(PortalClassLoaderFilter.java:53) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196) 
    at com.liferay.portal.servlet.filters.header.HeaderFilter.processFilter(HeaderFilter.java:129) 
    at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123) 
    at com.liferay.portal.kernel.servlet.PortalClassLoaderFilter.doFilter(PortalClassLoaderFilter.java:53) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
    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) 
+0

當您嘗試會發生什麼事? – kolossus

+0

XML解析錯誤:沒有的元素中找到位置:http://本地主機:8080/SampleRichfces /面/ EN /頁/設計/ home.xhtml 1號線,1列: –

+0

@kolossus此 –

回答