JBoss-如何在jboss-deployment-structure中排除javax.validation? [英] JBoss - How can to exclude javax.validation in jboss-deployment-structure?

查看:349
本文介绍了JBoss-如何在jboss-deployment-structure中排除javax.validation?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有使用Jersey REST的.war,并且可以在tomCat中使用.但是我需要在JBoss 6.4.0中运行.war,这会导致异常

I have .war using Jersey REST, and it works in tomCat. But I need to run my .war in JBoss 6.4.0 which causes an exception

java.lang.RuntimeException: java.lang.NoSuchMethodError:
javax.validation.spi.ConfigurationState.getParameterNameProvider()

因为JBoss使用旧版本的javax.validation,所以我需要从JBoss部署中排除javax.validation.

because JBoss uses old version javax.validation, and I need to exclude javax.validation from deployment of JBoss.

我在.war的WEB-INF中创建 jboss-deployment-structure.xml :

I create jboss-deployment-structure.xml in WEB-INF of .war:

<?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>

这帮助我排除了javax.ws.rs,但是如何排除javax.validation?请帮助我

This helped me to exclude javax.ws.rs, but How can to exclude javax.validation? Help me, please

推荐答案

所以,这件事!可能对某人有帮助: JBoss中的库javax.validation.api-属于隐式模块,有关隐式模块的文档:

So, it is something! May be help to someone: Library javax.validation.api in JBoss - belongs to Implicit module, documentation about implicit module: implicit module dependencies

因此隐式模块是自动依赖项,并且它们可以对此进行排除:

So implicit modules are Automatic Dependencies, and their can exclusion, about this: class lading and automatic dependencies - part about Automatic Dependencies: Automatic dependencies can be excluded through the use of jboss-deployment-structure.xml. But this is not work! :(, and JBoss has bug with similar library javax.persistence, and it bug open in tasks.

那么-该怎么办?

  1. 将JBoss更新为7.0.0版本,但现在仅是A​​lpha和Beta版本:(
  2. 在新版本.jar上替换旧的javax.validation.api .jar (在 EAP-6.4.0/modules/system/layers/base/javax/faces/api/main 中)
  3. 添加自定义版本,并且纠结在一起: 更改 EAP-6.4.0/modules/system/layers/base/javax/faces/api/main module.xml 文件中的默认配置,在<module name="javax.validation.api" export="true"/>行中删除选项export="true",结果:<module name="javax.validation.api"/>进行了更改,以允许您添加新的自定义库javax.validation. 然后在 EAP-6.4.0/modules/system/layers/base/javax/validation/api 中创建名称为 1.1 的自定义文件夹,并放入 1.1 文件夹新的javax.validation .jar model.xml .
  1. Update JBoss to 7.0.0 version, but now just Alpha and Beta versions :(
  2. Replace old javax.validation.api .jar on new version .jar (in EAP-6.4.0/modules/system/layers/base/javax/faces/api/main)
  3. Add custom version, and it tangled: change default config in EAP-6.4.0/modules/system/layers/base/javax/faces/api/main module.xml file, in line <module name="javax.validation.api" export="true"/> remove option export="true", result: <module name="javax.validation.api"/> This changed to allow you add a new custom library javax.validation. And create custom folder with name 1.1 in EAP-6.4.0/modules/system/layers/base/javax/validation/api, put in 1.1 folder new javax.validation .jar and model.xml.

model.xml:

model.xml:

<?xml version="1.0" encoding="UTF-8"?>

<module xmlns="urn:jboss:module:1.1" name="javax.validation.api" slot="1.1">
    <resources>
        <resource-root path="validation-api-1.1.0.Final.jar"/>
    </resources>

  <dependencies>
    <module name="org.jboss.logging"/>
  </dependencies>
</module>

参数: 插槽-名称自定义文件夹(1.1), path-.jar库的路径

params: slot - name custom folder (1.1), path - path to .jar library

最后:将模块添加到项目中的jboss-deployment-structure.xml:

Last: add module to jboss-deployment-structure.xml in project:

<dependencies>
  <module name="javax.validation.api" slot="1.1" export="true"/>
</dependencies>

这篇关于JBoss-如何在jboss-deployment-structure中排除javax.validation?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆