Java 无法解析validationmessages.properties

Java 无法解析validationmessages.properties,java,bean-validation,hibernate-validator,Java,Bean Validation,Hibernate Validator,当我运行我的项目时,当项目未打包时位于src/main/resources中的本地化验证消息,以及当项目打包和部署时与IDE嵌入式运行程序或WEB-INF/类一起运行的本地化验证消息都不会被解析。我总是收到默认消息 然而,当我运行测试时,消息被正确解析 我使用香草验证弹簧不会干扰 validator = Validation.byDefaultProvider().configure().messageInterpolator(new LocaleAwareMessageInterpolator

当我运行我的项目时,当项目未打包时位于src/main/resources中的本地化验证消息,以及当项目打包和部署时与IDE嵌入式运行程序或WEB-INF/类一起运行的本地化验证消息都不会被解析。我总是收到默认消息

然而,当我运行测试时,消息被正确解析

我使用香草验证弹簧不会干扰

validator = Validation.byDefaultProvider().configure().messageInterpolator(new LocaleAwareMessageInterpolator(locale)).buildValidatorFactory().getValidator();
LocaleAwareMessageInterpolator扩展了标准ResourceBundleMessageInterpolator

public class LocaleAwareMessageInterpolator extends ResourceBundleMessageInterpolator {
  private Locale defaultLocale = Locale.FRENCH;

  public LocaleAwareMessageInterpolator(Locale defaultLocale) {
    this.defaultLocale = defaultLocale;
  }

  @Override
  public String interpolate(final String messageTemplate, final Context context) {
    return interpolate(messageTemplate, context, defaultLocale);
  }

  @Override
  public String interpolate(final String messageTemplate, final Context context, final Locale locale) {
    try {
      return super.interpolate(messageTemplate, context, locale);
    } catch (ExceptionInInitializerError e) {...}
  }
}
我应该把它们移到另一个地方吗?
我是否应该在某个地方设置一些参数以给出.properties的位置?

我通过在ResourceBundleMessageInterpolator构造函数中传递一个PlatformResourceBundleLocator解决了这个问题。我不知道为什么系统不能从WEB-INF/类中获取验证消息,我认为这是自动的,但这是可行的

public LocaleAwareMessageInterpolator(Locale defaultLocale) {
   super(new PlatformResourceBundleLocator("ValidationMessages"));
   this.defaultLocale = defaultLocale;
}

他对此非常清楚。我错过了。

属性文件的确切名称和位置是什么?它应该是类路径根中的ValidationMessages.properties。然而,src/main/resources并不是一个可以从中获取信息的地方。这是一个源位置,您使用的构建工具或IDE会将文件复制到另一个位置。查看LocaleAwareMessageInterpolator的代码也可能会有所帮助。谢谢。名称为ValidationMessages.properties。部署路径是WEB-INF/classes。我会把密码寄出去。