Ant <war> & <jar> tasks and WinZIP

Leon van Tegelen

Yesterday I ran into some freaky behavior while building a web-application for Tomcat using Ant. In my build script I use the war task.
I used WinZIP to check if all files I needed were present in the war file.
When I deployed the war file I created on Tomcat, I got an error indicating that the web.xml file could not be located. In the war file it was present however. Closer inspection revealed that it was located in a directory web-inf (lower-case) in the war file, whilst on the filesystem the directory from which it was build is in uppercase as it should be.

I turned out that opening the war file with WinZIP is the culprit.

Form the ant FAQ on the apache site

You may have seen these lower-case directory names in WinZIP, but WinZIP is trying to be helpful (and fails). If WinZIP encounters a filename that is all upper-case, it assumes it has come from an old DOS box and changes the case to all lower-case for you.

If you extract (or just check) the archive with jar, you will see that the names have the correct case.

With WinZIP (version 8.1 at least), this can be corrected in the configuration. In the Options/Configuration menu, in the View tab, General section, check the “Allow all upper case files names” box. The META-INF and WEB-INF will look correct.

Easily done …

Tomcat happy, me happy

Next Post

Hidden PL/SQL Gem in 10g: DBMS_FREQUENT_ITEMSET for PL/SQL based Data Mining

Data Mining in PL/SQL applications – Supplied Package DBMS_FREQUENT_ITEMSET (new in 10gR1) Resource: Oracle 10g Supplied Packages – dbms_frequent_itemset. This package exposes some part of the Data Mining capability of the Oracle 10g Server through PL/SQL and indirectly SQL. It allows us to quickly scan sets of data to find […]
%d bloggers like this: