Jeb*_*tin 2 validation spring websphere-8
Websphere 8.5.5是否与Spring 5兼容?在spring5(validation-api 5)中引用的Validation API导致MethodNotFound异常。任何可用的指针/补丁程序都可以解决此问题-升级到Websphere 9不够?
引起原因:java.lang.NoSuchMethodError:javax / validation / Configuration.getDefaultParameterNameProvider()Ljavax / validation / ParameterNameProvider; (由org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@25d460de从文件:/opt/IBM/WebSphere/AppServer/plugins/javax.j2ee.validation.jar加载)从类org.springframework.validation.beanvalidation.LocalValidatorFactoryBean调用(由com.ibm.ws.classloader.CompoundClassLoader@1c7dbdd9从文件:../ spring-context-5.0.2.RELEASE.jar加载
小智 5
该方法javax/validation/Configuration.getDefaultParameterNameProvider已添加到Bean验证1.1中,因此表明您正在使用的Spring验证程序正在尝试使用Bean验证1.1 API。根据https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/validation/beanvalidation/LocalValidatorFactoryBean.html:
从Spring 5.0开始,此类需要Bean Validation 1.1+
WebSphere 8.5.5提供Bean Validation 1.0,直到9.0版才添加对Bean Validation 1.1的支持。因此,您将需要使用Spring 4.x或WebSphere9.x。
上面的答案不正确。您可以在WebSphere 8.5 中运行Spring 5。这可能不是适合您情况的完美解决方案,但这将使您走上正确的道路。
1.) 提供您的 Bean 验证 1.1 JAR
以下是 Maven 依赖项的示例。
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
2.) 将以下部署.xml 文件添加到 EAR 文件中的以下位置。
/myAppEAR/META-INF/ibmconfig/cells/defaultCell/applications/defaultApp/deployments/defaultApp/deployment.xml
3.) 在deployment.xml 文件的内容中,必须将classloaderMode 设置为PARENT_LAST。您还必须修改此代码以使用正确的 WAR 文件名。
这是一个示例...
<appdeployment:Deployment xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:appdeployment="http://www.ibm.com/websphere/appserver/schemas/5.0/appdeployment.xmi" xmi:id="Deployment_1422578178899">
<deployedObject xmi:type="appdeployment:ApplicationDeployment" xmi:id="ApplicationDeployment_1422578178899" startingWeight="10" warClassLoaderPolicy="SINGLE">
<modules xmi:type="appdeployment:WebModuleDeployment" xmi:id="WebModuleDeployment_1422578178899" startingWeight="10000" **uri="myApp.war"** **classloaderMode="PARENT_LAST"**/>
<classloader xmi:id="Classloader_1422578178899" **mode="PARENT_LAST"**/>
</classloader>
</deployedObject>
</appdeployment:Deployment>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2873 次 |
| 最近记录: |