Results 1 to 3 of 3

Thread: bean validator issue in jdk 6

  1. #1

    Default bean validator issue in jdk 6

    Hi to all,

    I'm using spring-modules-validation (0.7) BeanValidator with annotations
    and I have a strange problem. If I deploy my web application to Tomcat
    running with jdk 5 everything goes well, but if I switch to jdk 6 I get
    a java.lang.NoClassDefFoundError.

    This is my configuration:
    * linux;
    * jdk 6;
    * tomcat 5.5.20;
    * spring 2.0.2;
    * springmodules 0.7;
    * maven 2.0.5 (I use the ibiblio springmodules jar);

    This is a snippet of the configuration file of my web app:

    Code:
    <!-- This is the annotation validator -->
    	<bean id="validator" 
    class="org.springmodules.validation.bean.BeanValidator">
    		<property name="configurationLoader" ref="configurationLoader"/>
    	</bean>
    	<bean id="configurationLoader" 
    class="org.springmodules.validation.bean.conf.loader.annotation.AnnotationBeanValidationConfigurationLoader" 
    />
    <!-- Abstract Controller -->
         <bean id="abstractController" abstract="true">
             <property name="conf">
                 <ref bean="conf"/>
             </property>
             <property name="validators">
                 <ref bean="validator"/>
             </property>
             <lookup-method name="dao" bean="daos"/>
             <lookup-method name="blo" bean="blos"/>
         </bean>
    and this is the exception:

    Code:
    Instantiation of bean failed; nested exception is 
    org.springframework.beans.BeanInstantiationException: Could not 
    instantiate bean class 
    [org.springmodules.validation.bean.BeanValidator]: Constructor threw 
    exception; nested exception is java.lang.NoClassDefFoundError: Could not 
    initialize class org.springmodules.validation.util.LibraryUtils
             at 
    org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:253)
    I found the same problem if I use winxp: jdk5 works and jdk6 fails.

    Anyone having the same issue?

    Thanks in advance

    gtrev


    PS.: excuse me for crossposting from users@springmodules.dev.java.net ...

  2. #2

    Default

    I solved the problem upgrading to commons-lang-2.3.
    The validation framework declares a dependency to commons-lang-2.1 which hasn't got SystemUtils.IS_JAVA_1_6.

    Before loading AnnotationValidator, the ValidatorNamespaceHandler checks if the vm has annotations enabled, using LibraryUtils.JDK_ANNOTATIONS_SUPPORTED, which is:
    SystemUtils.IS_JAVA_1_5 || SystemUtils.IS_JAVA_1_6;

    In java 5 the first part of the boolean expression returns true and the second isn't evaluated ---> No problems

    In java 6 the first part returns false so the second is evaluated ---> using commons-lang-2.3 solves the problem

    By the way, this is a very nice framework, it solves a lot of problems for me: I don't like very much validating against an xml

    bye,
    gtrev

  3. #3
    Join Date
    Jul 2008
    Posts
    7

    Default org.apache.commons.lang.SystemUtils

    SystemUtils class is present in the common lang jar -
    org.apache.commons.lang.SystemUtils

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •