【问题标题】:NoClassDefFoundError: javax/validation/Validation occurs even validation-api 1.1.0.Final in the POMNoClassDefFoundError: javax/validation/Validation 甚至在 POM 中的validation-api 1.1.0.Final 中也会发生
【发布时间】:2016-02-04 07:52:46
【问题描述】:

看起来很奇怪...我有异常跟踪:

org.apache.cxf.interceptor.Fault
        at org.mule.module.cxf.MuleInvoker.invoke(MuleInvoker.java:117)
        at org.mule.module.cxf.MuleJAXWSInvoker.invoke(MuleJAXWSInvoker.java:47)
        at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:75)
        at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
        at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:106)
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
        at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:123)
        at org.mule.module.cxf.CxfInboundMessageProcessor.sendToDestination(CxfInboundMessageProcessor.java:295)
        at org.mule.module.cxf.CxfInboundMessageProcessor.process(CxfInboundMessageProcessor.java:136)
        at org.mule.module.cxf.config.FlowConfiguringMessageProcessor.process(FlowConfiguringMessageProcessor.java:52)
        at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:27)
        at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:61)
        at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:47)
        at org.mule.processor.AbstractInterceptingMessageProcessorBase.processNext(AbstractInterceptingMessageProcessorBase.java:106)
        at org.mule.processor.AsyncInterceptingMessageProcessor.process(AsyncInterceptingMessageProcessor.java:101)
        at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:27)
        at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:61)
        at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:47)
        at org.mule.processor.chain.DefaultMessageProcessorChain.doProcess(DefaultMessageProcessorChain.java:95)
        at org.mule.processor.chain.AbstractMessageProcessorChain.process(AbstractMessageProcessorChain.java:70)
        at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:27)
        at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:47)
        at org.mule.processor.AbstractInterceptingMessageProcessorBase.processNext(AbstractInterceptingMessageProcessorBase.java:106)
        at org.mule.interceptor.AbstractEnvelopeInterceptor.process(AbstractEnvelopeInterceptor.java:55)
        at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:27)
        at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:61)
        at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:47)
        at org.mule.processor.AbstractInterceptingMessageProcessorBase.processNext(AbstractInterceptingMessageProcessorBase.java:106)
        at org.mule.processor.AbstractFilteringMessageProcessor.process(AbstractFilteringMessageProcessor.java:44)
        at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:27)
        at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:61)
        at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:47)
        at org.mule.processor.AbstractInterceptingMessageProcessorBase.processNext(AbstractInterceptingMessageProcessorBase.java:106)
        at org.mule.construct.AbstractPipeline$1.process(AbstractPipeline.java:112)
        at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:27)
        at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor
        ....
        at org.mule.execution.FlowProcessingPhase$1.run(FlowProcessingPhase.java:63)
        at org.mule.work.WorkerContext.run(WorkerContext.java:311)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ExceptionInInitializerError
        at com.comp.db.utils.HibernateUtil.<clinit>(HibernateUtil.java:51)
        at com.comp.db.DAO.ApplicationDAOImpl.getPcoApplicationIBStatus(ApplicationDAOImpl.java:62)
        at com.comp.serv.ServiceEndPoindImpl.getApplicationStatus(ServiceEndPoindImpl.java:641)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.mule.model.resolvers.AbstractEntryPointResolver.invokeMethod(AbstractEntryPointResolver.java:151)
        at org.mule.model.resolvers.MethodHeaderPropertyEntryPointResolver.invoke(MethodHeaderPropertyEntryPointResolver.java:112)
        at org.mule.model.resolvers.DefaultEntryPointResolverSet.invoke(DefaultEntryPointResolverSet.java:39)
        at org.mule.component.DefaultComponentLifecycleAdapter.invoke(DefaultComponentLifecycleAdapter.java:343)
        at org.mule.component.AbstractJavaComponent.invokeComponentInstance(AbstractJavaComponent.java:86)
        at org.mule.component.AbstractJavaComponent.doInvoke(AbstractJavaComponent.java:77)
        at org.mule.component.AbstractComponent.invokeInternal(AbstractComponent.java:126)
        at org.mule.component.AbstractComponent.access$000(AbstractComponent.java:61)
        at org.mule.component.AbstractComponent$1$1.process(AbstractComponent.java:242)
        at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:27)
        at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:61)
        at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:47)
        at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:27)
        at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:61)
        at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:47)
    ......

        at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:61)
        at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:47)
        at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:27)
        at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:61)
        at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:47)
        at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:27)
        at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:61)
        at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:47)
        at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:27)
        at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:61)
        at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:47)
        ... 21 more
Caused by: org.hibernate.HibernateException: Unable to get the default Bean Validation factory
        at org.hibernate.cfg.beanvalidation.BeanValidationActivator.applyDDL(BeanValidationActivator.java:127)
        at org.hibernate.cfg.Configuration.applyBeanValidationConstraintsOnDDL(Configuration.java:1674)
        at org.hibernate.cfg.Configuration.applyConstraintsToDDL(Configuration.java:1624)
        at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1415)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1826)
        at com.comp.db.utils.HibernateUtil.<clinit>(HibernateUtil.java:44)
        ... 110 more
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.hibernate.cfg.beanvalidation.BeanValidationActivator.applyDDL(BeanValidationActivator.java:118)
        ... 115 more
Caused by: java.lang.NoClassDefFoundError: javax/validation/Validation
        at org.hibernate.cfg.beanvalidation.TypeSafeActivator.getValidatorFactory(TypeSafeActivator.java:342)
        at org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyDDL(TypeSafeActivator.java:106)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

我阅读了https://stackoverflow.com/a/17142416/1293060,现在我的依赖树看起来像:

[INFO] +- org.json:json:jar:20151123:compile
[INFO] +- commons-io:commons-io:jar:2.4:compile
[INFO] +- fife:rsyntaxtextarea:jar:2.0.1:compile
[INFO] +- com.neovisionaries:nv-i18n:jar:1.9:compile
[INFO] +- commons-dbcp:commons-dbcp:jar:1.2.2:compile
[INFO] |  \- commons-pool:commons-pool:jar:1.3:compile
[INFO] +- com.microsoft.sqlserver:sqljdbc4:jar:4.0:compile
[INFO] +- com.oracle:ojdbc6:jar:11.2.0:compile
[INFO] +- org.fluttercode.datafactory:datafactory:jar:0.8:compile
[INFO] +- junit:junit:jar:4.12:compile
[INFO] |  \- org.hamcrest:hamcrest-core:jar:1.3:compile
[INFO] +- org.testng:testng:jar:6.9.10:compile
[INFO] |  +- com.beust:jcommander:jar:1.48:compile
[INFO] |  \- org.beanshell:bsh:jar:2.0b4:compile
[INFO] +- org.mule:mule-core:jar:3.5.0:compile
[INFO] |  +- commons-beanutils:commons-beanutils:jar:1.8.0:compile
[INFO] |  +- com.github.stephenc.eaio-uuid:uuid:jar:3.4.0:compile
[INFO] |  |  \- com.github.stephenc.eaio-grabbag:grabbag:jar:1.8.1:compile
[INFO] |  +- commons-cli:commons-cli:jar:1.2:compile
[INFO] |  +- commons-collections:commons-collections:jar:3.2.1:compile
[INFO] |  +- commons-lang:commons-lang:jar:2.4:compile
[INFO] |  +- org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1.1:compile
[INFO] |  +- org.apache.geronimo.specs:geronimo-j2ee-connector_1.5_spec:jar:1.1:compile
[INFO] |  +- javax.annotation:jsr250-api:jar:1.0:compile
[INFO] |  +- org.slf4j:jcl-over-slf4j:jar:1.6.1:compile
[INFO] |  +- org.slf4j:slf4j-api:jar:1.6.1:compile
[INFO] |  +- org.slf4j:slf4j-log4j12:jar:1.6.1:compile
[INFO] |  +- log4j:log4j:jar:1.2.16:compile
[INFO] |  +- asm:asm:jar:3.1:compile
[INFO] |  +- asm:asm-commons:jar:3.1:compile
[INFO] |  |  \- asm:asm-tree:jar:3.1:compile
[INFO] |  +- org.mule.mvel:mule-mvel2:jar:2.1.9-MULE-003:compile
[INFO] |  +- org.jgrapht:jgrapht-jdk1.5:jar:0.7.3:compile
[INFO] |  +- org.mule.common:mule-common:jar:3.5.0:compile
[INFO] |  |  +- org.apache.xmlbeans:xmlbeans:jar:2.3.0:compile
[INFO] |  |  +- javax.xml.stream:stax-api:jar:1.0-2:compile
[INFO] |  |  \- org.antlr:antlr-runtime:jar:3.5:compile
[INFO] |  |     \- org.antlr:stringtemplate:jar:3.2.1:compile
[INFO] |  \- com.google.guava:guava:jar:16.0.1:compile
[INFO] +- org.mule.modules:mule-module-spring-config:jar:3.5.0:compile
[INFO] |  +- org.mule.modules:mule-module-annotations:jar:3.5.0:compile
[INFO] |  |  \- cglib:cglib-nodep:jar:2.2:compile
[INFO] |  +- org.springframework:spring-context:jar:3.2.1.RELEASE:compile
[INFO] |  |  +- org.springframework:spring-aop:jar:3.2.1.RELEASE:compile
[INFO] |  |  \- org.springframework:spring-expression:jar:3.2.1.RELEASE:compile
[INFO] |  +- dom4j:dom4j:jar:1.6.1:compile
[INFO] |  \- jaxen:jaxen:jar:1.1.1:compile
[INFO] +- org.mule.transports:mule-transport-http:jar:3.5.0:compile
[INFO] |  +- org.mule.transports:mule-transport-ssl:jar:3.5.0:compile
[INFO] |  +- commons-codec:commons-codec:jar:1.3:compile
[INFO] |  +- commons-httpclient:commons-httpclient:jar:3.1:compile
[INFO] |  +- tomcat:tomcat-util:jar:5.5.23:compile
[INFO] |  |  \- tomcat:tomcat-apr:jar:5.5.23:compile
[INFO] |  +- org.samba.jcifs:jcifs:jar:1.3.3:compile
[INFO] |  \- joda-time:joda-time:jar:1.6:compile
[INFO] +- org.mule.modules:mule-module-client:jar:3.5.0:compile
[INFO] +- org.mule.modules:mule-module-cxf:jar:3.5.0:compile
[INFO] |  +- org.apache.cxf:cxf-rt-core:jar:2.5.9:compile
[INFO] |  |  +- org.apache.cxf:cxf-api:jar:2.5.9:compile
[INFO] |  |  |  +- org.apache.neethi:neethi:jar:3.0.2:compile
[INFO] |  |  |  \- wsdl4j:wsdl4j:jar:1.6.2:compile
[INFO] |  |  \- org.apache.ws.xmlschema:xmlschema-core:jar:2.0.3:compile
[INFO] |  +- org.apache.cxf:cxf-rt-frontend-simple:jar:2.5.9:compile
[INFO] |  |  \- org.apache.cxf:cxf-rt-bindings-soap:jar:2.5.9:compile
[INFO] |  +- org.apache.cxf:cxf-rt-frontend-jaxws:jar:2.5.9:compile
[INFO] |  |  +- xml-resolver:xml-resolver:jar:1.2:compile
[INFO] |  |  \- org.apache.cxf:cxf-rt-bindings-xml:jar:2.5.9:compile
[INFO] |  +- org.apache.cxf:cxf-rt-databinding-aegis:jar:2.5.9:compile
[INFO] |  +- org.apache.cxf:cxf-rt-databinding-jaxb:jar:2.5.9:compile
[INFO] |  |  \- com.sun.xml.bind:jaxb-xjc:jar:2.1.13:compile
[INFO] |  +- org.apache.cxf:cxf-rt-databinding-jibx:jar:2.5.9:compile
[INFO] |  |  +- org.apache.cxf:cxf-tools-common:jar:2.5.9:compile
[INFO] |  |  +- org.jibx:jibx-run:jar:1.2.4.5:compile
[INFO] |  |  |  \- xpp3:xpp3:jar:1.1.3.4.O:compile
[INFO] |  |  \- org.jibx:jibx-schema:jar:1.2.4.5:compile
[INFO] |  |     \- org.jibx:jibx-extras:jar:1.2.4.5:compile
[INFO] |  |        \- org.jdom:jdom:jar:1.1.3:compile
[INFO] |  +- org.apache.cxf:cxf-rt-transports-local:jar:2.5.9:compile
[INFO] |  +- org.apache.cxf:cxf-rt-ws-security:jar:2.5.9:compile
[INFO] |  |  +- org.apache.cxf:cxf-common-utilities:jar:2.5.9:compile
[INFO] |  |  \- org.apache.ws.security:wss4j:jar:1.6.9:compile
[INFO] |  |     +- org.apache.santuario:xmlsec:jar:1.5.3:compile
[INFO] |  |     \- org.opensaml:opensaml:jar:2.5.1-1:compile
[INFO] |  |        \- org.opensaml:openws:jar:1.4.2-1:compile
[INFO] |  |           \- org.opensaml:xmltooling:jar:1.3.2-1:compile
[INFO] |  +- org.apache.cxf:cxf-rt-ws-rm:jar:2.5.9:compile
[INFO] |  |  \- org.apache.cxf:cxf-rt-management:jar:2.5.9:compile
[INFO] |  +- org.apache.cxf:cxf-rt-ws-addr:jar:2.5.9:compile
[INFO] |  +- org.apache.cxf:cxf-rt-transports-http:jar:2.5.9:compile
[INFO] |  |  +- org.apache.cxf:cxf-rt-transports-common:jar:2.5.9:compile
[INFO] |  |  \- org.springframework:spring-web:jar:3.0.6.RELEASE:compile
[INFO] |  |     \- aopalliance:aopalliance:jar:1.0:compile
[INFO] |  +- org.apache.cxf:cxf-wstx-msv-validation:jar:2.5.9:compile
[INFO] |  |  \- net.java.dev.msv:msv-core:jar:2011.1:compile
[INFO] |  |     +- com.sun.msv.datatype.xsd:xsdlib:jar:2010.1:compile
[INFO] |  |     +- isorelax:isorelax:jar:20030108:compile
[INFO] |  |     \- relaxngDatatype:relaxngDatatype:jar:20020414:compile
[INFO] |  +- com.sun.xml.messaging.saaj:saaj-impl:jar:1.3:compile
[INFO] |  |  \- javax.xml.soap:saaj-api:jar:1.3:compile
[INFO] |  +- org.mule.modules:mule-module-spring-security:jar:3.5.0:compile
[INFO] |  |  +- org.mule.modules:mule-module-spring-extras:jar:3.5.0:compile
[INFO] |  |  |  +- org.springframework:spring-jdbc:jar:3.2.1.RELEASE:compile
[INFO] |  |  |  +- org.springframework:spring-jms:jar:3.2.1.RELEASE:compile
[INFO] |  |  |  +- org.mule.modules:mule-module-builders:jar:3.5.0:compile
[INFO] |  |  |  +- org.springframework:spring-context-support:jar:3.2.1.RELEASE:compile
[INFO] |  |  |  \- org.apache.geronimo.specs:geronimo-jms_1.1_spec:jar:1.1:compile
[INFO] |  |  +- org.springframework.security:spring-security-core:jar:3.1.0.RELEASE:compile
[INFO] |  |  |  \- org.springframework.security:spring-security-crypto:jar:3.1.0.RELEASE:compile
[INFO] |  |  +- org.springframework.security:spring-security-config:jar:3.1.0.RELEASE:compile
[INFO] |  |  +- org.springframework.security:spring-security-web:jar:3.1.0.RELEASE:compile
[INFO] |  |  |  \- org.springframework:spring-tx:jar:3.0.6.RELEASE:compile
[INFO] |  |  +- org.springframework.security:spring-security-ldap:jar:3.1.0.RELEASE:compile
[INFO] |  |  |  \- org.springframework.ldap:spring-ldap-core:jar:1.3.1.RELEASE:compile
[INFO] |  |  +- org.apache.geronimo.specs:geronimo-servlet_3.0_spec:jar:1.0:compile
[INFO] |  |  \- org.aspectj:aspectjrt:jar:1.6.11:compile
[INFO] |  +- org.mule.transports:mule-transport-tcp:jar:3.5.0:compile
[INFO] |  +- net.sourceforge.saxon:saxon:jar:9.1.0.8:compile
[INFO] |  +- org.apache.geronimo.specs:geronimo-annotation_1.1_spec:jar:1.0.1:compile
[INFO] |  +- org.springframework:spring-beans:jar:3.2.1.RELEASE:compile
[INFO] |  +- org.springframework:spring-core:jar:3.2.1.RELEASE:compile
[INFO] |  +- javax.mail:mail:jar:1.4.3:compile
[INFO] |  +- javax.xml.ws:jaxws-api:jar:2.2.1:compile
[INFO] |  |  \- javax.jws:jsr181-api:jar:1.0-MR1:compile
[INFO] |  \- org.apache.ant:ant:jar:1.7.0:runtime
[INFO] |     \- org.apache.ant:ant-launcher:jar:1.7.0:runtime
[INFO] +- org.mule.modules:mule-module-management:jar:3.5.0:compile
[INFO] |  +- mx4j:mx4j-jmx:jar:2.1.1:compile
[INFO] |  +- mx4j:mx4j-impl:jar:2.1.1:compile
[INFO] |  +- mx4j:mx4j-tools:jar:2.1.1:compile
[INFO] |  +- mx4j:mx4j-remote:jar:2.1.1:compile
[INFO] |  +- com.yourkit:yjp-controller-api-redist:jar:9.0.8:compile
[INFO] |  \- tanukisoft:wrapper:jar:3.2.3:compile
[INFO] +- org.mule.modules:mule-module-xml:jar:3.5.0:compile
[INFO] |  +- org.apache.geronimo.specs:geronimo-stax-api_1.0_spec:jar:1.0.1:compile
[INFO] |  +- commons-jxpath:commons-jxpath:jar:1.3:compile
[INFO] |  +- com.thoughtworks.xstream:xstream:jar:1.4.2:compile
[INFO] |  |  \- xmlpull:xmlpull:jar:1.1.3.1:compile
[INFO] |  +- xpp3:xpp3_min:jar:1.1.3.4.O:compile
[INFO] |  +- org.codehaus.woodstox:woodstox-core-asl:jar:4.1.4:compile
[INFO] |  |  \- org.codehaus.woodstox:stax2-api:jar:3.1.1:compile
[INFO] |  +- net.java.dev.stax-utils:stax-utils:jar:20080702:compile
[INFO] |  +- net.sourceforge.saxon:saxon:jar:dom:9.1.0.8:compile
[INFO] |  +- net.sourceforge.saxon:saxon:jar:xqj:9.1.0.8:compile
[INFO] |  +- javax.xml.bind:jaxb-api:jar:2.1:compile
[INFO] |  \- com.sun.xml.bind:jaxb-impl:jar:2.1.5:compile
[INFO] +- org.mule.modules:mule-interceptor-module:jar:3.5-M2:test
[INFO] |  \- org.mockito:mockito-all:jar:1.8.2:test
[INFO] +- org.hibernate:hibernate-core:jar:5.0.7.Final:compile
[INFO] |  +- org.jboss.logging:jboss-logging:jar:3.3.0.Final:compile
[INFO] |  +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final:compile
[INFO] |  +- org.javassist:javassist:jar:3.18.1-GA:compile
[INFO] |  +- antlr:antlr:jar:2.7.7:compile
[INFO] |  +- org.jboss:jandex:jar:2.0.0.Final:compile
[INFO] |  \- org.hibernate.common:hibernate-commons-annotations:jar:5.0.1.Final:compile
[INFO] \- javax.validation:validation-api:jar:1.1.0.Final:compile

但部署后我仍然收到java.lang.NoClassDefFoundError: javax/validation/Validation 错误(请参阅根本原因的堆栈跟踪)。你能帮助避免这个例外吗?谢谢。

更新 现在我的 pom 有了依赖项:

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.0.7.Final</version>
        </dependency>


        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.2.3.Final</version>
        </dependency>

<!--

        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.1.0.Final</version>
        </dependency>
-->

和依赖树:

 \- org.hibernate:hibernate-validator:jar:5.2.3.Final:compile
[INFO]    +- javax.validation:validation-api:jar:1.1.0.Final:compile
[INFO]    \- com.fasterxml:classmate:jar:1.1.0:compile

而且异常是一样的:

Caused by: java.lang.ClassNotFoundException: javax.validation.Validation
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)

我会很高兴有任何想法和帮助。

更新

还尝试将hibernate.validator.apply_to_ddl=false 添加到app.properties 并将&lt;scope&gt;test&lt;/scope&gt; 添加到&lt;artifactId&gt;validation-api&lt;/artifactId&gt;。没有帮助。

更新 还尝试从已部署应用程序的文件夹中删除validation-api-1.1.0.Final.jar

更新 这个:

 <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-validator</artifactId>
      <version>5.2.3.Final</version>
      <exclusions>
          <exclusion>
              <groupId>javax.validation</groupId>
              <artifactId>validation-api</artifactId>
          </exclusion>
      </exclusions>
  </dependency>

也无济于事。 =(

更新

这种情况也不行:

  <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.2.3.Final</version>

            <exclusions>
                <exclusion>
                    <groupId>javax.validation</groupId>
                    <artifactId>validation-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.0.0.GA</version>
        </dependency>

更新 也不行:

<dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.0.7.Final</version>
        </dependency>


       <!-- <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.2.3.Final</version>

            <exclusions>
                <exclusion>
                    <groupId>javax.validation</groupId>
                    <artifactId>validation-api</artifactId>
                </exclusion>
            </exclusions>

        </dependency>-->


       <!-- <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.1.0.Final</version>
            <scope>test</scope>
        </dependency>
-->

        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.0.0.GA</version>
        </dependency>

仍然需要帮助。

可能是 Mule 3.4 库中的问题?

【问题讨论】:

  • 你试过mvn clean并重新部署了吗?
  • 是的,试过clean package -U -Dmaven.test.skip=true
  • 如果 Validation jar 在那里,你能看看你的战争吗?
  • @Jens,这不是战争,但罐子在文件夹snag.gy/4euly.jpg

标签: java hibernate mule mule-studio


【解决方案1】:

并添加这个罐子:

  hibernate-validator-5.x.x 

并删除 javax.validation:validation-api:jar:1.1.0.Finalvalidation-api:jar:1.1.0.Final 因为与 hibernate-validator 不兼容。

【讨论】:

  • 已添加,但现在Caused by: org.hibernate.HibernateException: Unable to get the default Bean Validation factory at org.hibernate.cfg.beanvalidation.BeanValidationActivator.applyDDL(BeanValidationActivator.java:127) at org.hibernate.cfg.Configuration.applyBeanValidationConstraintsOnDDL(Configuration.java:1674) at org.hibernate.cfg.Configuration.applyConstraintsToDDL(Configuration.java:1624),,,
  • 我从 pom 中排除了 &lt;artifactId&gt;validation-api&lt;/artifactId&gt;,然后排除了 mvn clean -U ,但它仍在树中 \- org.hibernate:hibernate-validator:jar:5.2.3.Final:compile [INFO] +- javax.validation:validation-api:jar:1.1.0.Final:compile [INFO] \- com.fasterxml:classmate:jar:1.1.0:compile
  • @May12 删除 :validation-api:jar:1.1.0.Final
  • 怎么样?我从 pom 中删除了它。够了吗?
  • @May12 尝试发布您的所有材料我会尝试运行它
【解决方案2】:

检查目标文件夹或服务器上的部署位置以确保 jar 可用。

【讨论】:

  • 它也有验证jar吗?
  • @Sarhiesh,文件夹 C:\mule-standalone\apps\services\lib 中有 nex 文件:antlr-2.7.6.jar bsh-2.0b4.jar commons-dbcp-1.2.2.jar commons-io-2.4.jar commons-pool-1.3.jar datafactory-0.8.jar hamcrest-core-1.3.jar hibernate-commons-annotations-3.2.0.Final.jar hibernate-core-3.6.2.Final.jar hibernate-jpa-2.0-api-1.0.0.Final.jar hibernate-validator-4.2.0.Final.jar jcommander-1.48.jar json-20151123.jar jta-1.1.jar junit-4.12.jar nv-i18n-1.9.jar ojdbc6-11.2.0.jar rsyntaxtextarea-2.0.1.jar sqljdbc4-4.0.jar testng-6.9.10.jar validation-api-1.0.0.GA.jar
  • 我也尝试从已部署应用程序的文件夹中删除validation-api-1.1.0.Final.jar。
  • 我也尝试从已部署应用程序的文件夹中删除validation-api-x.x.x.jar。
【解决方案3】:

旧帖子,但我认为我提供了更新: 我尝试了不同版本的 hibernate-validator 工件,但仍然有相同的错误。 所以我将 validation-api-xxx.jar 复制到“父”类加载器位置之一;

  • 在 Mule Studio 中,我将它放在 plugins/org.mule.tooling.server.3.4.0_3.4.0.201310241917\mule\user
  • 在服务器上,我将它放在 $MULE_HOME/lib/apps//mule

这解决了问题。但是我还没有弄清楚为什么只在 POM 中包含 hibernate-validator 是行不通的。

哦,我忘了提,请确保将休眠验证器工件留在您的 POM 中。

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>4.1.0.Final</version>
    </dependency>

确保您使用的validation-api 版本与hibernate-validator 的要求相匹配。您可以在依赖项列表中查找它

【讨论】:

    【解决方案4】:

    我们使用 mule 3.4 社区版。这对我们有用:

    删除

       <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.0.0.GA</version>
        </dependency>`
    

    来自您的 pom.xml。

    确保在mule的用户库目录中添加validation-api-1.0.0.GA.jar;如果您使用的是 mule studio,它应该位于 plugins\org.mule.tooling.server.3.4.0_3.4.0.201310241917\mule\user 中。如果使用 mule server 你应该把文件放在 mule/lib/user

    我们至少有一台服务器,将验证 jar 放在用户目录中会导致类加载问题,但幸运的是,我们并不真正需要 hibernate 的 jpa 验证;所以我们完全禁用验证。然后 validation.jar 将完全被类加载器忽略 - 它不会关心它是否存在。以下是我们实现这一目标的方法:

     <bean id="emf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
      <property name="dataSource" ref="dataSource" />
      <property name="packagesToScan" value="my.pkg.to.scan" />
      <property name="jpaVendorAdapter">
         <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
      </property>
      <property name="jpaProperties">
         <props>
            <!-- <prop key="hibernate.hbm2ddl.auto">create-drop</prop> -->
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>
            <prop key="hibernate.show_sql">false</prop>
            <!--  set the JPA provider validation-mode to NONE -->
            <prop key="javax.persistence.validation.mode">none</prop>
         </props>
      </property>
    

    这里的关键行是&lt;prop key="javax.persistence.validation.mode"&gt;none&lt;/prop&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-30
      • 2015-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-13
      相关资源
      最近更新 更多