Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 排除JBoss 7.2.1中不工作的模块_Java_Maven_Jboss_Jboss7.x - Fatal编程技术网

Java 排除JBoss 7.2.1中不工作的模块

Java 排除JBoss 7.2.1中不工作的模块,java,maven,jboss,jboss7.x,Java,Maven,Jboss,Jboss7.x,在我的项目中,我们使用的是验证api:1.1.0.Final,我们的项目是基于标准maven web的项目。当我将war部署到JBOSS时,它给了我们以下错误 Caused by: java.lang.NoSuchMethodError: javax.validation.Configuration.parameterNameProvider(Ljavax/validation/ParameterNameProvider;)Ljavax/validation/Configuration;

在我的项目中,我们使用的是验证api:1.1.0.Final,我们的项目是基于标准maven web的项目。当我将war部署到JBOSS时,它给了我们以下错误

Caused by: java.lang.NoSuchMethodError: javax.validation.Configuration.parameterNameProvider(Ljavax/validation/ParameterNameProvider;)Ljavax/validation/Configuration;
           at org.apache.cxf.validation.BeanValidationProvider.initFactoryConfig(BeanValidationProvider.java:102) [cxf-core-3.0.2.jar:3.0.2]
           at org.apache.cxf.validation.BeanValidationProvider.<init>(BeanValidationProvider.java:59) [cxf-core-3.0.2.jar:3.0.2]
           at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [rt.jar:1.6.0_27]
           at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) [rt.jar:1.6.0_27]
           at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) [rt.jar:1.6.0_27]
           at java.lang.reflect.Constructor.newInstance(Constructor.java:513) [rt.jar:1.6.0_27]
           at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147) [spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
原因:java.lang.NoSuchMethodError:javax.validation.Configuration.parameterNameProvider(Ljavax/validation/parameterNameProvider;)Ljavax/validation/Configuration;
位于org.apache.cxf.validation.BeanValidationProvider.initFactoryConfig(BeanValidationProvider.java:102)[cxf-core-3.0.2.jar:3.0.2]
位于org.apache.cxf.validation.BeanValidationProvider.(BeanValidationProvider.java:59)[cxf-core-3.0.2.jar:3.0.2]
在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)[rt.jar:1.6.0\u 27]
在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)[rt.jar:1.6.027]
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)[rt.jar:1.6.027]
在java.lang.reflect.Constructor.newInstance(Constructor.java:513)[rt.jar:1.6.0_27]
在org.springframework.beans.BeanUtils.instanceClass(BeanUtils.java:147)[spring-beans-4.1.1.RELEASE.jar:4.1.1.RELEASE]
JBOSS似乎正在插入自己的validation-api-1.0.0.GA-redhat-2 jar,这就是问题的根源

我试图将jboss-deployment-structure.xml文件放在下面,并将其放在WEB-INF/dir中,但它不起作用

<jboss-deployment-structure>
 <deployment>
     <exclusions>
            <module name="javax.validation.api" />
     </exclusions>
 </deployment>
</jboss-deployment-structure>

我正在使用JBoss EAP 6.1.1.GA(AS 7.2.1.Final-redhat-10)

马文


javax.validation
验证api
1.1.0.1最终版本
假如
org.hibernate
休眠验证器
5.1.1.最终版本
org.glassfish.web
javax.el
2.2.4
javax模块

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

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


我一直在努力让它通过。非常感谢您的帮助。

我在
jboss-eap-6.0.0
上遇到了与
hibernate validator 5.1.3.Final相同的问题。同样的排除也无济于事

核心分辨率:


上传
validation-api-1.1.0.Final.jar
到文件夹
jb*\modules\javax\validation\api\main
并将其连接到
module.xml
您需要排除模块
javaee.api
,因为它引用了
javax.validation.api
。选中
JBOSS\u HOME\modules\system\layers\base\javaee\api\main\module.xml
,它将包含以下内容:

<module xmlns="urn:jboss:module:1.1" name="javaee.api">
<resources>
    <!-- Insert resources here -->
</resources>

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

    <!-- This one always goes last. -->
    <module name="javax.api" export="true"/>
</dependencies>

....
....

然后在您实际需要的
jboss部署结构.xml
文件中包含上面
module.xml
中列出的其他依赖项

更多详细信息可在此处找到:
(请参阅JBoss部署结构文件一节)

在另一个项目上,我让spring boot在同一个JBoss上运行,并使用了下面的JBoss-Deployment-Structure.xml

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
    <deployment>
        <exclude-subsystems>
            <subsystem name="jaxrs" />
        </exclude-subsystems>
        <dependencies>
            <!-- Exclude JAX-RS: 2. re-import the javaee.api and exclude the JAX-RS 
                classes -->
            <module name="javaee.api">
                <imports>
                    <exclude-set>
                        <path name="javax/ws/rs" />
                        <path name="javax/ws/rs/core" />
                        <path name="javax/ws/rs/ext" />
                        <path name="javax/validation" />
                        <path name="javax/validation/bootstrap" />
                        <path name="javax/validation/constraints" />
                        <path name="javax/validation/groups" />
                        <path name="javax/validation/metadata" />
                        <path name="javax/validation/spi" />
                    </exclude-set>
                </imports>
            </module>
        </dependencies>
        <exclusions>
            <module name="javaee.api" />
            <module name="javax.validation.api" />
            <module name="javax.faces.api" />
            <module name="org.hibernate.validator" />
        </exclusions>
    </deployment>
</jboss-deployment-structure>


RedHat也在跟进此事,但他们似乎在说服我降低jar的评级version@Rohit除了降级之外,红帽是否提供了任何有用的信息?@Rohit你能提供你与红帽社区讨论/jira问题的链接吗?同样的事情发生在我身上。我可以排除任何对javax.validation.api不起作用的内容。无论我做什么,我总是在类路径中使用模块的(旧)版本
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
    <deployment>
        <exclude-subsystems>
            <subsystem name="jaxrs" />
        </exclude-subsystems>
        <dependencies>
            <!-- Exclude JAX-RS: 2. re-import the javaee.api and exclude the JAX-RS 
                classes -->
            <module name="javaee.api">
                <imports>
                    <exclude-set>
                        <path name="javax/ws/rs" />
                        <path name="javax/ws/rs/core" />
                        <path name="javax/ws/rs/ext" />
                        <path name="javax/validation" />
                        <path name="javax/validation/bootstrap" />
                        <path name="javax/validation/constraints" />
                        <path name="javax/validation/groups" />
                        <path name="javax/validation/metadata" />
                        <path name="javax/validation/spi" />
                    </exclude-set>
                </imports>
            </module>
        </dependencies>
        <exclusions>
            <module name="javaee.api" />
            <module name="javax.validation.api" />
            <module name="javax.faces.api" />
            <module name="org.hibernate.validator" />
        </exclusions>
    </deployment>
</jboss-deployment-structure>