-
15. Re: RF 4.1.0.Final - javascript error when resource mapping enabled
healeyb Jan 6, 2012 12:40 PM (in response to lfryc)Hi Lukas, I'm not clear where I need to add the a4j:jsFunction in my template. I've tried it pretty much everywhere
but nothing seems to work. Does it need to be:
- in it's own form - before any other richfaces components are used - in the body ?
I've managed to get a page containing some extendedDataTables to render with resourceMapping enabled, but
they're not responsive (i.e. I can't select a row or scroll - due to the javascript errors surely). I've had to make three
changes to the application to get this to work:
1. Change the application to use prefix mapping instead of suffix mapping.
2. Not use my own org.richfaces.skin (context param). When I use my own skin it doesn't work.
3. I've had to ensure that my custom ResourceHandler (http://137.254.16.27/rlubke/entry/jsf_2_0_new_feature)
specifically excludes richfaces resources, which is fair enough. I use this to add a version string to jsf static
resources so that I can invalidate the browser cache on redeployment.
So thanks for replying, some good progress today, now I just need to nail the jsf.js problem and perhaps a few
jiras to log.
Regards,
Brendan.
-
16. Re: RF 4.1.0.Final - javascript error when resource mapping enabled
mcmurdosound Jan 9, 2012 2:52 AM (in response to healeyb)ah, sorry, weekend and no access to my computer at work ;-)
from my web.xml
(working with eclipse, jboss 7 etc)
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
(working with netbeans 7.0.1 glassfish etc)
<servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>/faces/*</url-pattern> </servlet-mapping> hmmm
-
17. Re: RF 4.1.0.Final - javascript error when resource mapping enabled
healeyb Jan 9, 2012 4:03 AM (in response to mcmurdosound)The problem I'm seeing with glassfish/mojarra is that it is appending .xhtml to all my static resources
when using suffix mapping. So if I have <h:outputScript name="jquery.js"/> in the page source this
translates to <script src="jquery.js.xhtml" type="text/javascript"/> - but it still works ok, the
FacesServlet is handling the situation. Another effect I'm seeing is that to reference a resource from a
stylesheet when using suffix mapping you have to use EL syntax, i.e.:
background-image: url("#{resource['images:background265.png']}");
...but it transpires that this is not brilliant from a performance perspective.
I can reproduce this behavior in a template NetBeans web project, so that rules out any configuration issues
at the application level, but perhaps there's something I've got set in the server configuration? Until I can
resolve this I've gone back to prefix mapping, but I think it (the unexpected appending of .xhtml) maybe related
to the problem I'm seeing with richfaces resource loading.
Regards,
Brendan.
-
18. Re: RF 4.1.0.Final - javascript error when resource mapping enabled
lfryc Jan 13, 2012 11:23 AM (in response to healeyb)Brendan Healey wrote:
Hi Lukas, I'm not clear where I need to add the a4j:jsFunction in my template.
The goal is to force JSF to load jsf.js before packed.js is loaded.
You can achieve it by placing component which requires jsf.js just before any other component (specifically any other RichFaces component).
Brendan Healey wrote:
1. Change the application to use prefix mapping instead of suffix mapping.
For resource mapping handler it should not matter if you use prefix/suffix mapping.
Brendan Healey wrote:
2. Not use my own org.richfaces.skin (context param). When I use my own skin it doesn't work.
Resource mapping is prepared for all the RichFaces skins, but when you are using custom skin, you need either to:
- disable mapping for resource-depenent resources [1]
- basically you need to derive own configuration for resource mapping, you can use current one based in richfaces-components-ui.jar and copy it to your classpath and remove all lines which contains %skin%
- or generate static resources from your skin configuration [2]
- disable mapping for resource-depenent resources [1]
-
19. Re: RF 4.1.0.Final - javascript error when resource mapping enabled
lfryc Jan 9, 2012 4:37 AM (in response to healeyb)Brendan Healey wrote:
The problem I'm seeing with glassfish/mojarra is that it is appending .xhtml to all my static resources
when using suffix mapping. So if I have <h:outputScript name="jquery.js"/> in the page source this
translates to <script src="jquery.js.xhtml" type="text/javascript"/> - but it still works ok, the
FacesServlet is handling the situation.
Yes, as you said, ResourceHandler does not have any other choice than use mapping you setup for FacesServlet (any other requests won't be handled by FacesServlet).
Brendan Healey wrote:
Another effect I'm seeing is that to reference a resource from a
stylesheet when using suffix mapping you have to use EL syntax, i.e.:
background-image: url("#{resource['images:background265.png']}");
...but it transpires that this is not brilliant from a performance perspective.
Yeah, this is JSF issue, Jakob Korherr are going to address that in project relative-resource-handler:
http://code.google.com/a/apache-extras.org/p/relative-resource-handler/
Brendan Healey wrote:
I can reproduce this behavior in a template NetBeans web project, so that rules out any configuration issues
at the application level, but perhaps there's something I've got set in the server configuration? Until I can
resolve this I've gone back to prefix mapping, but I think it (the unexpected appending of .xhtml) maybe related
to the problem I'm seeing with richfaces resource loading.
Regards,
Brendan.
Some of problems are indeed caused by RF resource loading and its configuration (while custom skin plays significan't role here).
If I could be of any help, just connect to irc.freenode.net #richfaces channel, discussing it in persona may help a lot.
-
20. Re: RF 4.1.0.Final - javascript error when resource mapping enabled
healeyb Jan 10, 2012 8:01 PM (in response to lfryc)Lukas, the "jsf is undefined" error was caused by the fact that the loading of packed.js wasn't being
triggered by using a richfaces component (I removed them all), but by using the richfaces packaged
version of jquery (it's inside packed.js of course), so in my template I had:
<h:head>
<h:outputScript name="jquery.js"/>
<h:outputScript name="jsf.js" library="javax.faces"/>
Simply by swapping the two outputScript lines fixes the problem. I had been a bit confused by the
whole issue because I was including jsf.js in the template anyway.
Regarding prefix/suffix mapping: I certainly can't get suffix mapping to work in a mojarra/glassfish
configuration, but it doesn't matter to me. I've reverted to prefix mapping as suffix mapping was causing
me problems in other ways.
One final thing to look out for is that if you manually include jquery-ui then note that this is already
included in packed.js. So if you use any RF components on your page, or just use the RF packaged
jquery.js and you also import jquery-ui-....js then you'll probably hit some javascript errors like
'no method 'propAttr'. If you're using some jquery-ui plugins that are not included in the RF packed.js
then build a custom jquery ui download and pick out the required modules from development-bundle/ui
in the zip file.
I will try and try and figure out how to handle the custom skin scenario.
Thanks very much for your help.
Brendan.
p.s. this is a dead link
-
21. Re: RF 4.1.0.Final - javascript error when resource mapping enabled
undermanager Jan 12, 2012 2:35 PM (in response to healeyb)For what it's worth:
The workaround mentioned by @Lucas (JIRA RF-11739) got me 85% of what I needed - i.e. RichFaces resources are now getting packed (I chose to use "org.richfaces.resourceMapping.packedStages" in my web.xml).
I still cannot pack my own resources (using org.richfaces.resourceMapping.mappingFile and org.richfaces.resourceMapping.location) - can't get that piece right yet. Will revisit at some point.