weblogic下包冲突 导致@Valid失效 不能正确校验表单 分析与解决

weblogic下包冲突 导致@Valid失效 不能正确校验表单 分析与解决问题描述:项目本地开发下使用tomcat||jetty启动,使用validation-api+hibernate-validator在对入参进行注解方式校验时,全部注解可以准确拦截异常参数在weblo

问题描述:

  • 项目本地开发下使用 tomcat || jetty 启动,使用 validation-api + hibernate-validator在对入参进行注解方式校验时,全部注解可以准确拦截异常参数
  • 在 weblogic 12c下 相同项目 @Notblank注解 失效,不能正确拦截空串入参

解决过程:

  • 更新 最新版本 validation-api + hibernate-validator      无效果
  • 更换启动类注解 @valid 无效果
  • 配置项目 weblogic配置文件 weblogic.xml
<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应用下的类

<weblogic-web-app>
	<container-descriptor>
		<prefer-web-inf-classes>true</prefer-web-inf-classes>
	</container-descriptor>
</weblogic-web-app>

2.设置prefer-web-inf-classes为false,并指定需要使用应用中的jar包:

<weblogic-web-app>
    <container-descriptor>
        <prefer-web-inf-classes>false</prefer-web-inf-classes>
        <prefer-application-packages>  
            <package-name>org.apache.commons.*</package-name>
        </prefer-application-packages> 
    </container-descriptor>
</weblogic-web-app>

本文采用第二种方式,问题解决

更多好玩好看的内容,欢迎到我的博客交流,共同进步        WaterMin

喜欢听相声的朋友,也可以来我的 YouTube,来听郭老师的相声    秋酿

今天的文章weblogic下包冲突 导致@Valid失效 不能正确校验表单 分析与解决分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/13492.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注