Europheus

A complete waste of a fine weblog.

javax.el.ELException: Function ‘:empty’ not found

18th August 2008

After installing Continuum 1.1 and Archiva 1.1.1 a number of web pages failed to load throwing exceptions such as javax.el.ELException: Function ‘:empty’ not found. As it turns out, this has to do with Tomcat version 6.0.18 and the EL library that it comes with.

As always, when on Linux, a script can fix things and save a lot of time. So here is my attempt at “fixing” java webapps (such as Continuum and Archiva) which encounter this error.

#!/bin/sh
#
# This script modifies EL expressions to run on Tomcat 6.0.18
#
# www.europheus.com
#

find $1 -name *.jsp -print | xargs sed -i -e "s/empty(/empty (/g"
find $1 -name *.jspf -print | xargs sed -i -e "s/empty(/empty (/g"
find $1 -name *.tag -print | xargs sudo sed -i -e "s/empty(/empty (/g"

find $1 -name *.jsp -print | xargs sed -i -e "s/not(/not (/g"
find $1 -name *.jspf -print | xargs sed -i -e "s/not(/not (/g"
find $1 -name *.tag -print | xargs sudo sed -i -e "s/not(/not (/g"

All you need to do is create a script file with this contents then run the script file with the root directory of the java web application. For example, try the following:

vi fix_el.sh
 (copy and paste the script contents)
 save fix_el.sh
chmod +x fix_el.sh
./fix_el.sh /var/www/vhosts/mydomain.com/webapps/ROOT/

Enjoy!

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>