Pau*_*lia 3 java deployment jboss
我有使用Jersey REST的.war,它在tomCat中工作。但是我需要在JBoss 6.4.0中运行.war,这会导致异常
java.lang.RuntimeException: java.lang.NoSuchMethodError:
javax.validation.spi.ConfigurationState.getParameterNameProvider()
Run Code Online (Sandbox Code Playgroud)
因为JBoss使用旧版本的javax.validation,并且我需要从JBoss部署中排除javax.validation。
我在.war的WEB-INF中创建jboss-deployment-structure.xml:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclude-subsystems>
<subsystem name="resteasy" />
<subsystem name="jpa"/>
<subsystem name="org.hibernate" />
<subsystem name="org.hibernate.validator" />
</exclude-subsystems>
<exclusions>
<module name="javaee.api" />
<module name="javax.ws.rs.api"/>
<module name="org.jboss.resteasy.resteasy-jaxrs"/>
<module name="javax.validation.api"/>
<module name="org.hibernate"/>
<module name="org.hibernate.validator"/>
</exclusions>
</deployment>
</jboss-deployment-structure>
Run Code Online (Sandbox Code Playgroud)
这帮助我排除了javax.ws.rs,但是如何排除javax.validation?请帮帮我
好,所以您不仅需要排除
<module name="javax.validation.api"/>
Run Code Online (Sandbox Code Playgroud)
itself, but also modules that are dependent on javax.validation.api module. The easiest way to see which modules are dependent on javax.validation.api and force it to be included, even though it was excluded, is to search your .xml files in JBOSS_DIRECTORY/modules for javax.validation.api, the modules that are dependent have something like that in module.xml:
<dependencies>>
<module name="javax.validation.api"/>
...
Run Code Online (Sandbox Code Playgroud)
And those modules need to be excluded as well. For me - I also needed to exclude:
<module name="javax.faces.api"/>
<module name="org.jboss.resteasy.resteasy-hibernatevalidator-provider"/>
Run Code Online (Sandbox Code Playgroud)
And then, javax validation eclusion was working :)
| 归档时间: |
|
| 查看次数: |
5822 次 |
| 最近记录: |