2013-09-27 3 views
2

내가 웹 로직의 11C에서 전환 한 후이 예외를 받고 있어요에 웹 로직 12C :웹 로직 (12) 최대 절전 검증 예외

javax.persistence.PersistenceException: [PersistenceUnit: JpaPersistenceUnit] Unable to build EntityManagerFactory 
... 
Caused By: java.lang.NoSuchMethodError: javax.validation.spi.ConfigurationState.getParameterNameProvider()Ljavax/validation/ParameterNameProvider; 
at org.hibernate.validator.internal.engine.ValidatorFactoryImpl.<init>(ValidatorFactoryImpl.java:113) 
at org.hibernate.validator.HibernateValidator.buildValidatorFactory(HibernateValidator.java:45) 

Vaadin 7 - Bean Validation (I는 주제에 대한 다른 질문을 찾았지만 모든 솔루션은 잘못된 라이브러리에 대한했다). 나는 내 hibernate 유효성 검사기가 bean 유효성 검사기 라이브러리와 일치한다고 생각한다. 이것은 WEB-INF/lib에 있습니다 :

hibernate-c3p0-4.2.4.Final.jar 
hibernate-commons-annotations-4.0.2.Final.jar 
hibernate-core-4.2.4.Final.jar 
hibernate-entitymanager-4.2.4.Final.jar 
hibernate-jpa-2.0-api-1.0.1.Final.jar 
hibernate-validator-5.0.1.Final.jar 
validation-api-1.1.0.Final.jar 

다른 종속성 때문에 발생할 수 있습니까?

편집 나는 현재 내 웹 로직-application.xml을이이 모든 것이 노력하고 있습니다 :

<weblogic-application> 

    <prefer-application-packages> 
     <package-name>javax.wsdl.*</package-name> 
     <package-name>javax.faces.*</package-name> 
     <package-name>org.apache.taglibs.*</package-name> 
     <package-name>org.springframework.*</package-name> 
     <package-name>javax.persistence.*</package-name> 
     <package-name>org.hibernate.*</package-name> 
     <package-name>javax.validation.*</package-name> 
     <package-name>javax.validation.bootstrap.*</package-name> 
     <package-name>javax.validation.constraints.*</package-name> 
     <package-name>javax.validation.groups.*</package-name> 
     <package-name>javax.validation.metadata.*</package-name> 
     <package-name>javax.validation.spi.*</package-name> 
     <package-name>org.slf4j.*</package-name> 
    </prefer-application-packages> 

    <prefer-application-resources> 
     <resource-name>javax.faces.*</resource-name> 
     <resource-name>org.apache.taglibs.*</resource-name> 
     <resource-name>org.springframework.*</resource-name> 
     <resource-name>javax.persistence.*</resource-name> 
     <resource-name>javax.validation.*</resource-name> 
     <resource-name>org.hibernate.*</resource-name> 
    </prefer-application-resources> 

</weblogic-application> 

답변

3

java.lang.NoSuchMethodError는 주로 클래스 경로에서 잘못된 라이브러리 버전에 의해 발생합니다. WebLogic 12c는 응용 프로그램에서 기대하는 것과 다른 버전의 유효성 검사 API를 사용하고있는 것으로 보입니다. 귀하의 WEB-INF/lib 폴더에있는 파일을 사용하도록하려면 weblogic.xmlprefer-web-inf-classes 요소를 사용하여 지정해야합니다.

Here

내가에```javax.validation```를 추가했습니다에 대한 prefer-web-inf-classes

+0

더 문서를 인'''- 선호하는 WEB-INF-classes''' 지금은 작동 – NeplatnyUdaj