2010-11-26 70 views
0

我試圖讓春季表單驗證工作。 但是我遇到了一些問題。春季驗證:(portlet)問題,如noclassdeffounderror

當我部署我的應用程序得到:

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:

<form:form action="${registerUser}" method="post" commandName="user"> 
    <b>User</b> 
    <form:input path="age"/> 
    <form:input path="name"/> 
    <input type="submit" value="register"/> 
</form:form> 

我放在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> 

回答

1

引起:SPR-6817 所以剛剛添加標籤我自己。

1

卸下slf4j的依賴。它的版本不正確。 Hibernate定義了一個傳遞依賴關係,因此將獲取正確的版本。

+0

刪除它仍網:org.springframework.beans.factory.Bea nCreationException:錯誤創建名稱爲豆'org.springframework.validatio n.beanvalidation.LocalValidatorFactoryBean#0:init方法的調用失敗; 嵌套異常是java.lang.NoSuchMethodError:org.slf4j.helpers.MessageForma tter.format(Ljava/lang/String; Ljava/lang/Object;)Lorg/slf4j/helpers/FormattingTu ple; org.springframework.beans.factory.BeanCreationException:創建bean機智的錯誤 h name'org.springframework.validation.beanvalidation.LocalValidatorFactoryBean# – jack 2010-11-26 13:19:48