weblogic下包冲突 导致@Valid失效 不能正确校验表单 分析与解决
weblogic下包冲突 导致@Valid失效 不能正确校验表单 分析与解决
问题描述:
- 项目本地开发下使用 tomcat || jetty 启动,使用 validation-api + hibernate-validator在对入参进行注解方式校验时,全部注解可以准确拦截异常参数
- 在 weblogic 12c下 相同项目 @Notblank注解 失效,不能正确拦截空串入参
解决过程:
- 更新 最新版本 validation-api + hibernate-validator 无效果
- 更换启动类注解 @valid 无效果
- 配置项目 weblogic配置文件 weblogic.xml添加自定义依赖后,问题解决
1
2
3
4
5<prefer-application-packages>
....................
<package-name>org.hibernate.*</package-name>
<package-name>javax.validation.*</package-name>
</prefer-application-packages>
分析:
问题出现是因为weblogic中包含了 valid相关的jar包,在启动项目时,未正确加载程序所包含正确版本的jar,导致部分注解校验失效
实践:
对于weblogic内置jar包与项目包冲突的问题,有两种途径解决
1.在weblogic.xml中设置prefer-web-inf-classes,即优先加载web应用下的类
1 |
|
2.设置prefer-web-inf-classes为false,并指定需要使用应用中的jar包:
1 |
|
本文采用第二种方式,问题解决
更多好玩好看的内容,欢迎到我的博客交流,共同进步        胡萝卜啵的博客
本文作者: 胡萝卜啵
本文链接: https://www.ytooo.top/54315.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!