I'm using Eclipse 3.5.2 with WTP and the JBoss AS tools 3.1cr2 server adapter with an EAR project that consists out of an EJB module and a web module. The web module has a bunch of jar files in [web module project root]/libraries/somedir, where "somedir" refers to several directories like apache-commons, jsf (for the richfaces libs, not jsf itself of course) etc.
The jar files in that directory are added to the .classpath of that project and in project -> Java EE Module Dependencies -> Web Libraries, these are marked for being deployed to WEB-INF/lib. In .classpath, entries like this are added:
<classpathentry kind="lib" path="libraries/apache-commons/commons-beanutils-1.7.0.jar" sourcepath="libraries/apache-commons/commons-beanutils-src.jar"> <attributes> <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> </attributes> </classpathentry>
After deployment, these jar files are normally deployed to WEB-INF/lib directory of the war inside the ear. Until today...
I did a new checkout of the project from SVN, and after publishing it to JBoss AS, the WEB-INF/lib remained empty. I did all the usual stuff, removing and adding the deployment, refreshing the workspace, adding and removing again, closing and opening Eclipse and doing all the previous stuff again. Republishing, cleaning, changing the deployment location from .metadata to the JBoss internal deployment folder, etc. Nothing helped... WEB-INF/lib would remain as empty as a beer closet in premises where painters have been at work. Or actually, even more empty since the entire /lib dir wasn't even there.
A few hours later after dinner, I decided to try it again by first creating a trivial test project to see if the libs would be deployed for that one. They did. So, I deployed my original project again preparing my self for comparing all the config files of the test and original project, but low and behold, the libs were suddenly actually there!
A prior suspicious change in the project is that the name of the web module was recently changed. However, most of my other co-workers who did a new check out from SVN after the name change had no problem at all with the libs not being deployed. Another suspicious thing is that unchecking the libraries in project -> Java EE Module Dependencies -> Web Libraries seems to have no effect on .classpath anymore (it normally removed the <attributes> tag beneath <classpathentry>). Maybe it changes some stuff in .metadata, but apparently not in the project.
Has anyone else encountered an empty or missing WEB-INF/lib?
This problem had cost me several hours with the worst of it that I have absolutely no idea what eventually fixed it and thus no idea what to do if it happens again. Any help or tips would be greatly appreciated.