#spring #hibernate #maven #validation #weblogic12c
#spring #переход в спящий режим #maven #проверка #weblogic12c
Вопрос:
Журнал:
org.springframework.beans.factory.Исключение BeanCreationException: ошибка при создании компонента с именем ‘org.springframework.validation.проверка beanvalidation.OptionalValidatorFactoryBean#0’: не удалось вызвать метод init; вложенным исключением является java.lang.Ошибка abstractmetododer: org.hibernate.validator.internal.engine.ConfigurationImpl.getDefaultParameterNameProvider()Ljavax/validation/ParameterNameProvider; в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(абстрактныйautowirecapablebeanfactory.java:1578)
Я думаю, что это связано с javax.validation api, я пробовал с 1.0 и 1.1, оба терпят неудачу
Тот же файл WAR отлично работает в Weblogic 10.3.6. Ниже приведен мой pom.xml
<properties>
<spring.maven.artifact.version>4.2.3.RELEASE</spring.maven.artifact.version>
<spring.security.version>4.0.1.RELEASE</spring.security.version>
<spring.batch.core.version>3.0.3.RELEASE</spring.batch.core.version>
<slf4j.version>1.7.12</slf4j.version>
<junit.version>4.12</junit.version>
<jbehave.version>3.9.5</jbehave.version>
<jbehave.web.selenium.version>3.5.5</jbehave.web.selenium.version>
<validation.api.version>1.0.0.GA</validation.api.version>
<hibernate.validator.version>4.3.2.Final</hibernate.validator.version>
<joda.time.version>2.7</joda.time.version>
<mockito.version>1.10.19</mockito.version>
<hsqldb.version>2.3.2</hsqldb.version>
<jackson.version>1.9.13</jackson.version>
<xstream.version>1.4.8</xstream.version>
<commons.jxpath.version>1.3</commons.jxpath.version>
<commons.io.version>2.4</commons.io.version>
<commons.lang.version>2.6</commons.lang.version>
<commons-lang3.version>3.4</commons-lang3.version>
<apache.poi.version>3.9</apache.poi.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- Spring Security -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.6.8</version>
</dependency>
<!-- Audit trail xpath queries -->
<dependency>
<groupId>commons-jxpath</groupId>
<artifactId>commons-jxpath</artifactId>
<version>${commons.jxpath.version}</version>
<exclusions>
<exclusion>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</exclusion>
<exclusion>
<groupId>org.codehaus.jettison</groupId>
<artifactId>jettison</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>${commons.lang.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.api.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.api.version}</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>${apache.poi.version}</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>${apache.poi.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<!-- Test specific jars -->
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>${hsqldb.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.vividsolutions</groupId>
<artifactId>jts</artifactId>
<version>${vividsolutions.jts.api.version}</version>
</dependency>
<!-- test scoped dependencies -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.maven.artifact.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<!-- Swagger -->
<dependency>
<groupId>com.mangofactory</groupId>
<artifactId>swagger-springmvc</artifactId>
<version>0.5.2</version>
</dependency>
<!-- JSR-303 standard Java Bean Validation annotations -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>${validation.api.version}</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>${joda.time.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>${hibernate.validator.version}</version>
</dependency>
<dependency>
<groupId>de.grundid.opendatalab</groupId>
<artifactId>geojson-jackson</artifactId>
<version>1.5.1</version>
</dependency>
<!-- Servlet API -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>${mockito.version}</version>
</dependency>
Ниже приведен мой weblogic.xml
<weblogic-web-app>
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
<session-monitoring-enabled>true</session-monitoring-enabled>
<servlet-reload-check-secs>-1</servlet-reload-check-secs>
</container-descriptor>
<context-root>business-services</context-root>
</weblogic-web-app>
Пожалуйста, помогите мне решить проблему. Спасибо.
Ответ №1:
Эта проблема решена.
Я обновил версию hibernate.validator до 5.3.0.Final и версию validation.api до 1.1.0.Final.
Weblogic 12.2.1.1 поддерживает только api Validator 1.1.0, а соответствующая версия средства проверки гибернации — 5.3.0.
Спасибо.
Ответ №2:
в версиях 2.x есть метод, который вы ищете
Комментарии:
1. org.hibernate.validator.engine. ConfigurationImpl этот класс присутствует во всех версиях.
2. но метод getDefaultParameterNameProvider содержится не во всех версиях.
3. Эта проблема устранена путем обновления версий validator api и hibernate validator, но вы заставили меня двигаться в правильном направлении, в hibernate validator версии 5.3.0 есть метод getDefaultParameterNameProvider. Большое спасибо.