Hibernate spring验证:(portlet)noclassdeffounderror等问题

Hibernate spring验证:(portlet)noclassdeffounderror等问题,hibernate,spring,validation,Hibernate,Spring,Validation,我正在努力使spring表单验证工作正常。 但是我有一些问题 当我部署我的应用程序时,我得到: Error creating bean wit h name 'org.springframework.validation.beanvalidation.LocalValidatorFactoryBean# 0': Invocation of init method failed; nested exception is java.lang.NoSuchMethod Error: org.slf4j

我正在努力使spring表单验证工作正常。 但是我有一些问题

当我部署我的应用程序时,我得到:

Error creating bean wit
h name 'org.springframework.validation.beanvalidation.LocalValidatorFactoryBean#
0': Invocation of init method failed; nested exception is java.lang.NoSuchMethod
Error: org.slf4j.helpers.MessageFormatter.format(Ljava/lang/String;Ljava/lang/Ob
ject;)Lorg/slf4j/helpers/FormattingTuple;


Could not initialize class org.hibernate.validator.engine.ConfigurationImpl
当我访问该页面时,我得到:

    org.springframework.beans.factory.BeanCreationException: Error creating bean wit
h name 'org.springframework.validation.beanvalidation.LocalValidatorFactoryBean#
0': Invocation of init method failed; nested exception is java.lang.NoClassDefFo
undError: Could not initialize class org.hibernate.validator.engine.Configuratio
nImpl
Bean类:

public class User{
    @Min(13)
    private int age;
    private String name;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName(){
            return name;
    }

    public void setName(String name){
            this.name = name;
    }   
}
控制器代码段:

@ActionMapping(params = "myAction=validateUser")
    public void validateUser(ActionRequest request, ActionResponse response, ModelMap model, @ModelAttribute("user") @Valid User user, BindingResult result ){      

        if(result.hasErrors()){
            for(ObjectError oe : result.getAllErrors()){
                System.out.println(oe.getDefaultMessage());
            }
        } else{
            //code
        }
    }
JSP:


使用者
My userRegistration-portlet.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:util="http://www.springframework.org/schema/util"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.0.xsd
        http://www.springframework.org/schema/util
        http://www.springframework.org/schema/util/spring-util-3.0.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
        ">

    <mvc:annotation-driven /> 

    <import resource="spring-hibernate.xml"/>

    <context:component-scan base-package="com.johndoe.dao" />
    <context:component-scan base-package="com.johndoe.model" />
    <context:component-scan base-package="com.johndoe.service" />
    <context:component-scan base-package="com.johndoe.util" />
    <context:component-scan base-package="com.johndoe.controller" />

    <bean class="org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>

    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass"
            value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>
</beans>

Pom.xml

<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-asm</artifactId>
            <version>3.0.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>3.0.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>3.0.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>3.0.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc-portlet</artifactId>
            <version>3.0.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>3.0.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>3.0.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>3.0.2.RELEASE</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.portlet</groupId>
            <artifactId>portlet-api</artifactId>
            <version>2.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.1.2</version>
        </dependency>
        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-hibernate3</artifactId>
            <version>2.0.8</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate</artifactId>
            <version>3.2.7.ga</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>4.0.2.GA</version>
        </dependency>       

    </dependencies>

org.springframework
春季asm
3.0.2.1发布
org.springframework
春豆
3.0.2.1发布
org.springframework
spring上下文
3.0.2.1发布
org.springframework
弹簧芯
3.0.2.1发布
org.springframework
SpringWebMVCPortlet
3.0.2.1发布
org.springframework
SpringWebMVC
3.0.2.1发布
org.springframework
弹簧网
3.0.2.1发布
org.springframework
弹簧试验
3.0.2.1发布
测试
javax.portlet
portlet api
2
假如
javax.servlet
jstl
1.1.2
塔格利布
标准
1.1.2
javax.servlet
servlet api
2.5
org.springframework
春季冬眠3
2.0.8
org.hibernate
冬眠
3.2.7.ga
org.hibernate
休眠验证器
4.0.2.GA

删除对
slf4j
的依赖关系。它的版本不正确。Hibernate定义了一个可传递的依赖项,因此将获取正确的版本。

原因:SPR-6817
所以我自己添加了标记。

删除它仍然是:org.springframework.beans.factory.Bea nCreationException:创建名为“org.springframework.validatio n.beanvalidation.localvalidatoryFactoryBean#0”的bean时出错:调用init方法失败;嵌套的异常是java.lang.NoSuchMethodError:org.slf4j.helpers.MessageForma tter.format(Ljava/lang/String;Ljava/lang/Object;)Lorg/slf4j/helpers/formatingtu ple;org.springframework.beans.factory.BeanCreationException:创建名为“org.springframework.validation.beanvalidation.LocalValidatoryFactoryBean#0”的bean时出错:调用init方法失败;嵌套异常是java.lang.NoSuchMethod错误:org.slf4j.helpers.MessageFormatter.format(Ljava/lang/String;Ljava/lang/Ob;)Lorg/slf4j/helpers/FormattingTuple@杰克-清洁你的目标目录,和你的雄猫。我想旧的依赖仍然存在。还要检查是否有任何其他依赖项未包含错误版本的slf4j。我检查了依赖项层次结构,唯一引用slf4j api的是hibernate-validator-4.0.2.GA,它引用的是slf4j api 1.5.6。我刚刚扫描了我的liferay文件夹和webapps\root\web inf(root=liferay应用程序的名称)以及该门户的一些其他portlet。就像你建议的那样,我进行了mvn清理,取消了Portlet的部署,关闭了liferay并重新启动了它,但错误仍然存在。localvalidatorfactorybean的noclassdeffounderror,@jack-这不是同一个错误;)这意味着spring-context.jar现在不在类路径上。
<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-asm</artifactId>
            <version>3.0.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>3.0.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>3.0.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>3.0.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc-portlet</artifactId>
            <version>3.0.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>3.0.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>3.0.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>3.0.2.RELEASE</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.portlet</groupId>
            <artifactId>portlet-api</artifactId>
            <version>2.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.1.2</version>
        </dependency>
        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-hibernate3</artifactId>
            <version>2.0.8</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate</artifactId>
            <version>3.2.7.ga</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>4.0.2.GA</version>
        </dependency>       

    </dependencies>