RenderResponseImpl.setHeader ERROR on Liferay 4.3.4
barthi Feb 6, 2008 11:49 AMHi!
We are trying to use Icefaces with Liferay-Portal 4.3.4 on JBoss AS 4.2.2.
We use Sun RI of JSF with the appropriate portal-bridge.
For testing RichFaces, I edited an existing Portlet and added the ToolTip that is evaluated on the server.
When entering the Portal, everything seems to be working. But when I move the mouse over the Tooltip area, the complete page is reloaded and the message that should be displayed in the tooltip is rendered into the portlet.
The Server-log shows the following error:
ERROR [AjaxRendererUtils] Detecting request character encoding is disable. 17:40:30,593 ERROR [AjaxRendererUtils] Failed to obtain Response#setHeader() method: java.lang.NoSuchMethodException: com.liferay.portlet.RenderResponseImpl.setHeader(java.lang.String, java.lang.String)
Our web.xml:
<?xml version="1.0"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>SOPortletCustomer</display-name> <context-param> <param-name>company_id</param-name> <param-value>godesys.de</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>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name> <param-value>true</param-value> </context-param> <context-param> <param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name> <param-value>false</param-value> </context-param> <context-param> <param-name>org.apache.myfaces.PRETTY_HTML</param-name> <param-value>true</param-value> </context-param> <context-param> <param-name>org.apache.myfaces.AUTO_SCROLL</param-name> <param-value>true</param-value> </context-param> <filter> <filter-name>utf-8</filter-name> <filter-class> com.godesys.web.filter.SetEncodingFilter </filter-class> </filter> <filter-mapping> <filter-name>utf-8</filter-name> <url-pattern>*.jsf</url-pattern> </filter-mapping> <listener> <listener-class> com.liferay.util.bridges.jsf.sun.LiferayConfigureListener </listener-class> </listener> <context-param> <param-name>org.richfaces.SKIN</param-name> <param-value>blueSky</param-value> </context-param> <filter> <display-name>RichFaces Filter</display-name> <filter-name>richfaces</filter-name> <filter-class>org.ajax4jsf.Filter</filter-class> </filter> <filter-mapping> <filter-name>richfaces</filter-name> <servlet-name>Faces Servlet</servlet-name> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> <dispatcher>INCLUDE</dispatcher> </filter-mapping> <filter-mapping> <filter-name>richfaces</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <!-- extension mapping --> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.jsf</url-pattern> </servlet-mapping> <taglib> <taglib-uri>http://richfaces.org/rich</taglib-uri> <taglib-location>/WEB-INF/rich.tld</taglib-location> </taglib> <login-config> <auth-method>BASIC</auth-method> </login-config> </web-app>
Our faces-config.xml:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd"> <faces-config> <component> <component-type>PORTLET_MENU_COMPONENT</component-type> <component-class>com.godesys.web.faces.component.PortletMenuComponent</component-class> </component> <component> <component-type>PORTLET_MENU_ELEMENT_COMPONENT</component-type> <component-class>com.godesys.web.faces.component.PortletMenuElementComponent</component-class> </component> <component> <component-type>PORTLET_MENU_LIST_COMPONENT</component-type> <component-class>com.godesys.web.faces.component.PortletMenuListComponent</component-class> </component> <component> <component-type>PORTLET_MENU_LIST_ELEMENT_COMPONENT</component-type> <component-class>com.godesys.web.faces.component.PortletMenuListElementComponent</component-class> </component> <component> <component-type>PORTLET_MENU_COMPONENT</component-type> <component-class>com.godesys.web.faces.component.PortletMenuComponent</component-class> </component> <component> <component-type>PORTLET_MENU_LIST_TRIGGER_COMPONENT</component-type> <component-class>com.godesys.web.faces.component.PortletMenuListTriggerComponent</component-class> </component> <component> <component-type>PortletNonFacesURL</component-type> <component-class> com.godesys.web.faces.component.PortletNonFacesLinkComponent </component-class> </component> <component> <component-type>PortletTab</component-type> <component-class> com.godesys.web.faces.component.PortletTabComponent </component-class> </component> <component> <component-type>PortletTabElement</component-type> <component-class> com.godesys.web.faces.component.PortletTabElementComponent </component-class> </component> <component> <component-type>PortletTabActivate</component-type> <component-class> com.godesys.web.faces.component.PortletTabActivateComponent </component-class> </component> <component> <component-type>TruncateTextConverter</component-type> <component-class> com.godesys.web.faces.component.TruncateTextConverterComponent </component-class> </component> <component> <component-type>FusionChart</component-type> <component-class> com.godesys.web.faces.component.FusionChartComponent </component-class> </component> <component> <component-type>FusionChartParameter</component-type> <component-class> com.godesys.web.faces.component.FusionChartParameterComponent </component-class> </component> <converter> <converter-id>TextFormatter</converter-id> <converter-class> com.godesys.web.converter.FormattedTextConverter </converter-class> </converter> <converter> <converter-id>TruncateTextConverter</converter-id> <converter-class> com.godesys.web.converter.TruncateTextConverter </converter-class> </converter> <managed-bean> <managed-bean-name>customerListBean</managed-bean-name> <managed-bean-class> com.godesys.crm.web.CustomerListBean </managed-bean-class> <managed-bean-scope>application</managed-bean-scope> </managed-bean> <managed-bean> <managed-bean-name>customerSearchBean</managed-bean-name> <managed-bean-class> com.godesys.crm.web.CustomerSearchBean </managed-bean-class> <managed-bean-scope>application</managed-bean-scope> </managed-bean> <managed-bean> <managed-bean-name>orderBean</managed-bean-name> <managed-bean-class> com.godesys.crm.web.CustomerOrderBean </managed-bean-class> <managed-bean-scope>application</managed-bean-scope> </managed-bean> <managed-bean> <managed-bean-name>customerEditBean</managed-bean-name> <managed-bean-class> com.godesys.crm.web.CustomerEditBean </managed-bean-class> <managed-bean-scope>application</managed-bean-scope> </managed-bean> <managed-bean> <managed-bean-name>customerGlobData</managed-bean-name> <managed-bean-class> com.godesys.crm.web.CustomerGlobData </managed-bean-class> <managed-bean-scope>application</managed-bean-scope> </managed-bean> <managed-bean> <managed-bean-name>customerRightsBean</managed-bean-name> <managed-bean-class> com.godesys.crm.web.CustomerRightsBean </managed-bean-class> <managed-bean-scope>application</managed-bean-scope> </managed-bean> <managed-bean> <managed-bean-name>customerErrorBean</managed-bean-name> <managed-bean-class> com.godesys.web.util.WebExceptionBean </managed-bean-class> <managed-bean-scope>application</managed-bean-scope> </managed-bean> <managed-bean> <managed-bean-name>projectViewBean</managed-bean-name> <managed-bean-class> com.godesys.crm.web.CustomerProjectsBean </managed-bean-class> <managed-bean-scope>application</managed-bean-scope> </managed-bean> <managed-bean> <managed-bean-name>customerToolbar</managed-bean-name> <managed-bean-class> com.godesys.crm.web.CustomerToolbarManagementBean </managed-bean-class> <managed-bean-scope>application</managed-bean-scope> </managed-bean> <managed-bean> <managed-bean-name>partnerListBean</managed-bean-name> <managed-bean-class> com.godesys.crm.web.CustomerPartnersBean </managed-bean-class> <managed-bean-scope>application</managed-bean-scope> </managed-bean> <managed-bean> <managed-bean-name>appointmentListBean</managed-bean-name> <managed-bean-class> com.godesys.crm.web.CustomerAppointmentsBean </managed-bean-class> <managed-bean-scope>application</managed-bean-scope> </managed-bean> <managed-bean> <managed-bean-name>customerStatisticBean</managed-bean-name> <managed-bean-class> com.godesys.crm.web.CustomerSalesStatisticBean </managed-bean-class> <managed-bean-scope>application</managed-bean-scope> </managed-bean> <navigation-rule> <navigation-case> <from-outcome>error</from-outcome> <to-view-id>/customer/CustomerError.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome>search</from-outcome> <to-view-id>/customer/CustomerSearch.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome>list</from-outcome> <to-view-id>/customer/CustomerList.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome>adressChart</from-outcome> <to-view-id> /customer/CustomerAdressStatistic.jsp </to-view-id> </navigation-case> </navigation-rule> <navigation-rule> <display-name>list</display-name> <from-view-id>/customer/CustomerList.jsp</from-view-id> <navigation-case> <from-outcome>selectCustomer</from-outcome> <to-view-id>/customer/CustomerDetail.jsp</to-view-id> </navigation-case> </navigation-rule> <navigation-rule> <from-view-id>/customer/CustomerAppointments.jsp</from-view-id> <navigation-case> <from-outcome>selectCustomer</from-outcome> <to-view-id>/customer/CustomerAppointments.jsp</to-view-id> </navigation-case> </navigation-rule> <navigation-rule> <from-view-id>/customer/CustomerPartner.jsp</from-view-id> <navigation-case> <from-outcome>selectCustomer</from-outcome> <to-view-id>/customer/CustomerPartner.jsp</to-view-id> </navigation-case> </navigation-rule> <navigation-rule> <from-view-id>/customer/CustomerPartnerDetail.jsp</from-view-id> <navigation-case> <from-outcome>selectCustomer</from-outcome> <to-view-id>/customer/CustomerPartner.jsp</to-view-id> </navigation-case> </navigation-rule> <navigation-rule> <from-view-id>/customer/CustomerOrder.jsp</from-view-id> <navigation-case> <from-outcome>selectCustomer</from-outcome> <to-view-id>/customer/CustomerOrder.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome>showOrders</from-outcome> <to-view-id>/customer/CustomerOrder.jsp</to-view-id> </navigation-case> </navigation-rule> <navigation-rule> <display-name>edit</display-name> <from-view-id>/customer/CustomerDetail.jsp</from-view-id> </navigation-rule> <navigation-rule> <display-name>error</display-name> <from-view-id>/customer/CustomerError.jsp</from-view-id> </navigation-rule> <navigation-rule> <from-view-id>/customer/CustomerPartner.jsp</from-view-id> <navigation-case> <from-outcome>selectPartner</from-outcome> <to-view-id>/customer/CustomerPartnerDetail.jsp</to-view-id> </navigation-case> </navigation-rule> <navigation-rule> <from-view-id>*</from-view-id> <navigation-case> <from-outcome>search</from-outcome> <to-view-id>/customer/CustomerSearch.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome>list</from-outcome> <to-view-id>/customer/CustomerList.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome>adressStatistic</from-outcome> <to-view-id>/customer/CustomerAdressStatistic.jsp</to-view-id> </navigation-case> </navigation-rule> <render-kit> <renderer> <component-family>com.godesys.PortletMenu</component-family> <renderer-type>PORTLET_MENU_RENDERER</renderer-type> <renderer-class> com.godesys.web.faces.renderer.PortletMenuRenderer </renderer-class> </renderer> <renderer> <component-family>PortletNonFacesURL</component-family> <renderer-type>PortletNonFacesURL</renderer-type> <renderer-class> com.godesys.web.faces.renderer.PortletNonFacesLinkRenderer </renderer-class> </renderer> <renderer> <component-family>PortletTab</component-family> <renderer-type>PortletTab</renderer-type> <renderer-class> com.godesys.web.faces.renderer.PortletTabRenderer </renderer-class> </renderer> <renderer> <component-family>PortletTabActivate</component-family> <renderer-type>PortletTabActivate</renderer-type> <renderer-class> com.godesys.web.faces.renderer.PortletTabActivateRenderer </renderer-class> </renderer> <renderer> <component-family>TruncateTextConverter</component-family> <renderer-type>TruncateTextConverter</renderer-type> <renderer-class> com.godesys.web.faces.renderer.TruncateTextConverterRenderer </renderer-class> </renderer> <renderer> <component-family>FusionChart</component-family> <renderer-type>FusionChart</renderer-type> <renderer-class> com.godesys.web.faces.renderer.FusionChartRenderer </renderer-class> </renderer> </render-kit> <application> <locale-config> <default-locale>DE</default-locale> <supported-locale>de</supported-locale> <supported-locale>en</supported-locale> <supported-locale>en_US</supported-locale> <supported-locale>de_de</supported-locale> </locale-config> <message-bundle> com.godesys.customer.web.messages.MessageResources </message-bundle> </application> </faces-config>
We'd be really happy about any suggestions.
Thanks,
barthi