Announcement Announcement Module
Collapse

Spring Modules forum decommissioned in favor of Spring Extensions

As the Spring Modules project has been replaced by the Spring Extensions (http://www.springsource.org/extensions) project, this forum has been decommissioned in favour of Spring Extensions one at:
http://forum.springsource.org/forumdisplay.php?f=44

Please see the Spring Extensions home page for a complete list of current projects in Java, .NET and ActionScript. You can also propose one if you want.

Cheers,
Costin Leau
SpringSource - http://www.SpringSource.com- Spring Training, Consulting, and Support - "From the Source"
http://twitter.com/costinl
See more
See less
bean validator issue in jdk 6 Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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 [email protected] ...

  • #2
    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

    Comment


    • #3
      org.apache.commons.lang.SystemUtils

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

      Comment

      Working...
      X