I have the same problem, fine on first startup, fail on redeploy.
It looks like it caches the dtd place, but can't find it because it's in the previous temp.
Solved the problem.
There was also a struts.jar in the lib of jboss.
Removed it and putted in lib of ear and OK.
Simple solution but hard to solve.