Do you have a context loader servlet defined in your web.xml? I've done what you are trying to accomplish many times without problems. For example:
1. Notice thathe context servlet is loaded before the web app servlet
<param-value>/WEB-INF/ctx-dao.xml, /WEB-INF/ctx-mail.xml, /WEB-INF/ctx-service.xml</param-value>
2. I've always been under the impression that the context loader servlet load each context XML file in the order they are specified. In my example, you can see that I want my DAOs instanciated first, then my Mail objects, then my Service objects that depend on both the DAOs and Mail objects. My point being that maybe you should list your Hibernate XML file first. Maybe someone else can comment if that ordering is indeed important.