Skins don't render in JBoss 4.2.2 -- eg: rich:dropDownMenu
----------------------------------------------------------
Key: RF-2267
URL:
http://jira.jboss.com/jira/browse/RF-2267
Project: RichFaces
Issue Type: Bug
Affects Versions: 3.1.4
Environment: Vista; JBoss 4.2.2; facelets
Reporter: Christian Bonami
Assigned To: Nick Belaevski
Fix For: 3.2.0
Attachments: jbpm-3.2.1.jar, poc.rar, seam.rar
I have a page that basically has to render a drop-down menu:
<body onload="#{onLoadEvent}" onunload="#{onUnloadEvent}">
<s:div rendered="#{identity.loggedIn}">
<h:form>
<rich:toolBar itemSeparator="line">
<rich:toolBarGroup itemSeparator="square">
<rich:dropDownMenu value="Order">
<rich:menuItem submitMode="server" value="Pipeline"
action="#{ddmenu.doPipeline}" />
</rich:dropDownMenu>
</rich:toolBarGroup>
</rich:toolBar>
</h:form>
</s:div>
This is what my web.xml looks like:
<?xml version="1.0"?>
<web-app
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"
version="2.4">
<description>SEAM POC</description>
<context-param>
<param-name>org.richfaces.SKIN</param-name>
<param-value>wine</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>
<url-pattern>*.seam</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>Seam Resource Servlet</servlet-name>
<servlet-class>
org.jboss.seam.servlet.ResourceServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Seam Resource Servlet</servlet-name>
<url-pattern>/seam/resource/*</url-pattern>
</servlet-mapping>
<filter>
<filter-name>Seam Filter</filter-name>
<filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Seam Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- JSF -->
<!--<context-param>
<param-name>org.ajax4jsf.xmlparser.ORDER</param-name>
<param-value>NEKO,TIDY,NONE</param-value>
</context-param>-->
<!--<context-param>
<param-name>org.ajax4jsf.xmlparser.TIDY</param-name>
<param-value>/pages/repeater.xhtml,/pages/tabs.xhtml</param-value>
</context-param>-->
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
<context-param>
<param-name>facelets.DEVELOPMENT</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>facelets.LIBRARIES</param-name>
<param-value>
/WEB-INF/tags/halesconsulting.taglib.xml
</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<context-param>
<description>
When set to true(by default it is), Chartlet servlet is used
to generate the chart, otherwise a phaselistener is used
</description>
<param-name>
net.sf.jsfcomp.chartcreator.USE_CHARTLET
</param-name>
<param-value>false</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>
<servlet-name>Chartlet</servlet-name>
<servlet-class>net.sf.jsfcomp.chartcreator.Chartlet</servlet-class>
</servlet>-->
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.seam</url-pattern>
</servlet-mapping>
<!--<servlet-mapping>
<servlet-name>Chartlet</servlet-name>
<url-pattern>*.chart</url-pattern>
</servlet-mapping>-->
<!-- Trinidad - as suggested by a4j-trinidad example-->
<!--<context-param>
--><!-- Maximum memory per request (in bytes) --><!--
<param-name>org.apache.myfaces.trinidad.UPLOAD_MAX_MEMORY</param-name>
--><!-- Use 500K --><!--
<param-value>512000</param-value>
</context-param>
<context-param>
--><!-- Maximum disk space per request (in bytes) --><!--
<param-name>org.apache.myfaces.trinidad.UPLOAD_MAX_DISK_SPACE</param-name>
--><!-- Use 5,000K --><!--
<param-value>5120000</param-value>
</context-param>-->
<!--<context-param>
--><!-- directory to store temporary files --><!--
<param-name>org.apache.myfaces.trinidad.UPLOAD_TEMP_DIR</param-name>
--><!-- Use a TrinidadUploads subdirectory of /tmp --><!--
<param-value>/tmp/TrinidadUploads/</param-value>
</context-param-->
<listener>
<listener-class>
org.jboss.seam.servlet.SeamListener
</listener-class>
</listener>
<listener>
<listener-class>
com.sun.faces.config.ConfigureListener
</listener-class>
</listener>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
My 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>
<!--
<lifecycle>
<phase-listener>
org.jboss.seam.jsf.SeamPhaseListener
</phase-listener>
</lifecycle>
-->
<application>
<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
</application>
<application>
<variable-resolver>
org.springframework.web.jsf.DelegatingVariableResolver
</variable-resolver>
</application>
<managed-bean>
<managed-bean-name>ddmenu</managed-bean-name>
<managed-bean-class>com.mazda.poc.web.Menu</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
<navigation-rule>
<navigation-case>
<from-action>#{pipelineMgr.newPipeline}</from-action>
<from-outcome>success</from-outcome>
<to-view-id>/pipelineDetail.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
<navigation-rule>
<navigation-case>
<from-action>#{authBean.login}</from-action>
<from-outcome>true</from-outcome>
<to-view-id>/home.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>
Now, when the page renders, the actual menu-items are shown but they are not skinned.
This is the source (html) of the rendered page:
<!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">
<head>
<link rel='stylesheet' type='text/css'
href='/poc-web/a4j_3_1_4.GAcss/toolBar.xcss/DATB/eAGLWbI.EQAFPwIh' />
<link rel='stylesheet' type='text/css'
href='/poc-web/a4j_3_1_4.GAcss/dropdownmenu.xcss/DATB/eAGLWbI.EQAFPwIh' />
<link rel='stylesheet' type='text/css'
href='/poc-web/a4j_3_1_4.GAcss/menucomponents.xcss/DATB/eAGLWbI.EQAFPwIh' />
<script type='text/javascript'
src='/poc-web/a4j_3_1_4.GAorg.ajax4jsf.javascript.PrototypeScript'></script>
<script type='text/javascript'
src='/poc-web/a4j_3_1_4.GAorg.ajax4jsf.javascript.AjaxScript'></script>
<script type='text/javascript'
src='/poc-web/a4j_3_1_4.GAscripts/menu.js'>
</script><script type='text/javascript'
src='/poc-web/a4j_3_1_4.GAorg/richfaces/renderkit/html/scripts/utils.js'></script>
<script type='text/javascript'
src='/poc-web/a4j_3_1_4.GAorg/ajax4jsf/javascript/scripts/form.js'></script>
<script type='text/javascript'
src='/poc-web/a4j_3_1_4.GAorg/richfaces/renderkit/html/scripts/form.js'></script>
<script src="/poc-web/js/modal.js"
type="text/javascript"></script>
<link rel="stylesheet" href="/poc-web/css/mazda.css"
type="text/css" />
</head>
<body onload="" onunload=""><div id="j_id3">
<form id="j_id4" name="j_id4" method="post"
action="/poc-web/home.seam"
enctype="application/x-www-form-urlencoded">
<input type="hidden" name="j_id4" value="j_id4" />
<table border="0" cellpadding="0" cellspacing="0"
class="dr-toolbar-ext rich-toolbar " id="j_id4:j_id5"
width="100%"><tr valign="middle"><td
class="dr-toolbar-int rich-toolbar-item "><div class=" dr-menu-label
dr-menu-label-unselect rich-ddmenu-label rich-ddmenu-label-unselect"
id="j_id4:j_id7"><span class="dr-label-text-decor
rich-label-text-decor">Order</span><div style="margin: 0px; padding:
0px; border: 0px; position: relative; z-index: 100;"><div
id="j_id4:j_id7_menu" class="dr-menu-list-border
rich-menu-list-border" style="visibility: hidden; z-index: 2; "><div
class="dr-menu-list-bg rich-menu-list-bg"><div class="dr-menu-item
dr-menu-item-enabled rich-menu-item rich-menu-item-enabled "
id="j_id4:j_id8" onclick="; {var form = A4J.findForm(this);var params = new
Object();params['j_id4:j_id8:hidden'] =
'j_id4:j_id8';Richfaces.jsFormSubmit('j_id4:j_id8',form.id,'',params);};
return false;; Event.stop(event);" onmouseup="Event.stop(event);
"><span class="dr-menu-icon rich-menu-item-icon "
id="j_id4:j_id8:icon"><img height="16"
src="/poc-web/a4j_3_1_4.GAimages/spacer.gif" width="16"
/></span><span class="rich-menu-item-label"
id="j_id4:j_id8:anchor">Pipeline</span></div><div
class="dr-menu-list-strut rich-menu-list-strut"><div
class="dr-menu-list-strut rich-menu-list-strut" width="1"
height="1"
style=""> </div></div></div></div><script
id="j_id4:j_id7_menu_script" type="text/javascript">new
RichFaces.Menu.Layer('j_id4:j_id7_menu',50,800).asDropDown('j_id4:j_id7','onmouseover','onmouseout',{'jointPoint':'auto','onitemselect':function(event){;return
true;},'direction':'auto','horizontalOffset':0,'disabled':false,'ongroupactivate':function(event){;return
true;},'verticalOffset':0,'oncollapse':function(event){;return
true;},'onexpand':function(event){;return true;}}
).addItem('j_id4:j_id8',{'closeOnClick':1,'disabled':false,'flagGroup':0}
);</script></div></div></td><td
width="100%"></td></tr></table><input
type="hidden" name="javax.faces.ViewState"
id="javax.faces.ViewState"
value="H4sIAAAAAAAAAJVWX2wURRifLpReWyItKBYjWFoikNA9KNc/UFFajrYX76BpG4LwUOZ25+627u0ss7O9BVJSTdREEpUAxocmkugjvGjiM4QHExI0khgTn4gxMSb+i4lBfVC/2d3b2927gp2HzezM933z+77vN983N35GzRZDBykryngeO6l5qyBj09Q1BXONGvIoLM5wzEkOG7hI2I5ZRsgMZza3GTlGVfL6u79+cKfQ27oeIcc8j1DTVdQbsabQskkNYnDX1gmNVKYp5ah1bqE69UYT2iX05vPUsmSL4LJsayHlEi/r8iR80toCap6f09T9gWLvPF7AjlzACrEaqYxTVvZ0UtHDmKaUVtSapVQfw8xTHAgU+/6v4gSjtulpD65CO82omaYVI0cM29MeCrR3P1ZbaGU48d0d9jWRYzO06XRWxEnWsVGUj+fnicJH3vvi5Icd1m5dEtkDOck+iy4iaYVZojYD0nS61myuwcnYKuWw2dzy7e07m898tQZJ46hNp1gdxwqnLINaeYkRq0R11TFfOuxCWldJCEPCL476Y6mfGp04uiO25vnsfqeAioBgW0OJ8arE2GfZW87nZ4oSaj6FtijUWCDMcmmdsbLUKE7bhqEZxSx6IrKncrTRjVRSRCoJZAehkSzaYILNgk4rR6htcMI42hQSy8AS3A+QW1+VO4bLRARsfRZ1BGtwZYJ1CLkJwzHD10HsbAjC6yZrDAhFsHGvmy19vfz3LxJqOoWaF7BuE8dssoRCBxjiqG1yNpedGxudyRzhqD1ZomUiO4IaYK6jlq0sVbBOLv7ZeWZ5718/SWhtBiVKkEEFsGVRiyLcY+d85AmBwAb0/n/LAmYaNrjvwL8wOJImxuADREQoityPysbvrn/88LW3hgF5poq8CsmVO2aX84S9eePa1varDy5V2dgOwQko1ywmG92PWZsG200N+LomxFcxS9RRT+KoC26RbNmGyx6dcEvOjU6/PJdJc5RIKUOFgTxJNZIanZrKZo6mwd9k3Z5WNnU5TQrY1vm4t7hjFKrquVn6KjEml79MjxjvX3dLZuWpSKbAka5nL3+TcJyQP7G76zPy5v0TP/y49cJENVpwjRKMGCphRK2FBfA937g8umV9Eq4kYTMY6P/K3U8PXVm+l5OQlEWtio4tK8TgNgtkVFeHo80e8TWanCHABl07j/M6GXFMUxxXFw6iy7O4eEKk/ahjQiGw4J5Vi5qIAkNdHkaQjIlV2pZOP7j1z2XJFdsUiNUkPnrj7ZnfT91/wY0DnN9dqwr15jKQmQM3F9tOXuE7xcnCu32V59CTvRc0FaKi8XOyTotFomaMRdSS924e3NFKCvWH8tR9eN/QntTe7mrAD/U0MtDjcL9XiXMGxafTpS1HW+ubHXS2ac8cCxO/EbM3P5bZTWK5N+DwcL+oMl4PFDsvhrF0hAkimqWoShxtDz0Ekk5fpVLpK8Bmn810YohioZrx8UjQrasFfWBYgG53QR90u7DvwkBdJGtN0e++oUiCjbW6ZpDHAuxYLcD8YAzgoA8wkuqehgDd50GAkqN11lkbM7KKeG5bLdyUEoM75MMdegTc8HukFlS/63jl2PT/nxGnB0uRAQcdZ6Abk3ukf3uC2brVejqIY54O+54Ohz3dFvW0+naKedknisrOFYpajvASVVeqaluCchWX+yR599L3D1PvSH4N6ocztkcKV1xDVK78b0//0X67M1etXEZll6hcqloG6LJKpzSTCKYvhnur1y7cCO4W2EQx60d7I8Wsf/+e/Qe64bEGB4lSVm+xxwn133D2I0yI08JcWTQyPFosRegjrgRh0Jjiu5DlKqyAF8j8D9WLvu7LDAAA"
/>
</form>
</body>
</html>
So, it appears to me, that the actual stylesheets are not rendered/found.
If i point my browser to /poc-web/a4j_3_1_4.GAcss/toolBar.xcss/DATB/eAGLWbI.EQAFPwIh, an
(almost) empty page is returned.
If, however, I omit the suffix and point to /poc-web/a4j_3_1_4.GAcss/toolBar.xcss, a
complete nice stylesheet is returned.
The application is deployed as an EAR (containing a WAR containing all required richfaces
libraries).
I'm quite desperate to get this to work. What is wrong, or what am I doing wrong?
Christian
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: