为了账号安全,请及时绑定邮箱和手机立即绑定

如果将 Bean 验证配置放在库 jar 中,则不会拾取

如果将 Bean 验证配置放在库 jar 中,则不会拾取

哈士奇WWW 2022-09-14 16:28:00
我在 Java EE 7 Web 应用程序中使用 Bean 验证 1.1。验证工作正常,但我很难让它在野蝇和自由上工作。我通过验证配置了一个自定义消息插值器.xml它被放置在一个库罐中:ROOT|-- WEB-INF    |-- lib        |-- my-validation.jar            |-- mypackage                |-- MyMessageInterpolator.class            |-- META-INF                |--validation.xml当部署到野蝇14时,一切都按预期工作。然而,在 Liberty 上可以找到 19,但在验证期间(例如,在 REST 资源中使用时)未被调用。MyMessageInterpolator@Valid然后,我直接移动到 Web 应用程序(不移动消息插值器本身):validation.xmlROOT|-- WEB-INF    |-- classes        |-- META-INF            |-- validation.xml    |-- lib        |-- my-validation.jar            |-- mypackage                |-- MyMessageInterpolator.class这是在Liberty上工作,但我预计当它被放置在一个图书馆罐子里时也能工作。豆验证 1.1 规范说:validation.xml除非明确忽略 [...],否则 a 会考虑 中可用的配置。ConfigurationMETA-INF/validation.xml我在这里错过了什么?
查看完整描述

2 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

我同意安迪对自由的默认行为的回答。但是,有一个属性 ,可以对其进行配置以获取您要查找的行为。通过设置(默认值为 true),将扫描整个应用程序以查找单个应用程序并应用于所有模块。这样做的缺点是只能有一个验证.xml在您的应用程序中定义。如果找到多个部署错误。com.ibm.ws.beanvalidation.allowMultipleConfigsPerAppcom.ibm.ws.beanvalidation.allowMultipleConfigsPerApp=falseMETA-INF/validation.xml

有关设置此属性的更多详细信息,请参阅以下链接:

https://www.ibm.com/support/knowledgecenter/en/SSEQTP_liberty/com.ibm.websphere.wlp.doc/ae/rwlp_restrict.html#rwlp_restrict__BeanvalidationFeatureRestrict

http://www-01.ibm.com/support/docview.wss?uid=swg1PI43130


查看完整回答
反对 回复 2022-09-14
?
Helenr

TA贡献1780条经验 获得超4个赞

这似乎正在按预期工作。豆验证规范在 JavaEE 或 JavaSE 环境中工作,所以当它说 时,这通常是相对于在 JavaEE 环境中的。META-INF/validation.xmlWEB-INF/classes/

为了进行比较,如果要使用JPA的持久性.xml在.war模块中,则需要将其放在.与CDI的豆子.xml相同,它进入.war模块。WEB-INF/classes/META-INF/persistence.xmlWEB-INF/classes/beans.xml

它可能在其他地方也是允许的,但从我所看到的支持其他位置不是由规范定义的。


查看完整回答
反对 回复 2022-09-14
  • 2 回答
  • 0 关注
  • 65 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号