Я наткнулся на это, когда искал что-то еще, но хотел уточнить у ОП, что происходит. Вам действительно нужно, чтобы файл существовал в META-INF / validation.xml; однако это относительно пути к классам, поэтому он работал, когда вы помещали его в WEB-INF / classes / META-INF / validation.xml.
Более чистый подход заключается в том, чтобы файл был помещен для вас. Ваш проект Eclipse уже должен как-то выводить то, что находится в вашем исходном каталоге, в WEB-INF / классы, иначе ничего не будет работать. Но иногда есть фильтры на то, что он выводит, чтобы он мог что-то исключить. Возможно, вы захотите проверить ваши src dirs и убедиться, что в них нет исключений.
Например, если у вас был военный проект Maven, все ваши исходные коды java будут помещаться в src / main / java, а сгенерированные классы окажутся в каталоге WEB-INF / classes. Эквивалент происходит для src / main / resources, который содержит не исходные файлы. Когда я хочу, чтобы * .xml, * .properties и т. Д. Оказались в WEB-INF / классах, я помещаю их в src / main / resources. Для вашего примера у меня будет файл src / main / resources / META-INF / validation.xml.
Надеюсь, это поможет любому, кто сталкивается с этим и смущен.