xiaoxing tech

November 19, 2008

hibernate-validator-3.1.0.GA not compatible with Core_hibernate-distribution-3.3.1.GA

Filed under: JSP, Java, hibernate — xiaoxing @ 4:04 pm

Use hibernate-validator-3.1.0.GA with Core_hibernate-distribution-3.3.1.GA,
got this error:
java.lang.NoSuchMethodError: org.hibernate.event.PreUpdateEvent.getSource()Lorg/hibernate/engine/SessionImplementor;
at org.hibernate.validator.event.ValidateEventListener.onPreUpdate(ValidateEventListener.java:177)
at org.hibernate.action.EntityUpdateAction.preUpdate(EntityUpdateAction.java:237)

solution: download hibernate-distribution-3.3.0.SP1, use the old hibernate3.jar to replace the new one in distribution-3.3.1.GA.

http://opensource.atlassian.com/projects/hibernate/browse/HV-66

java.lang.NoSuchFieldError: name org.slf4j.impl.Log4jLoggerAdapter.(Log4jLoggerAdapter.java

Filed under: JSP, Java, hibernate — xiaoxing @ 11:53 am

problem: AnnotationConfiguration cfg = new AnnotationConfiguration(); fails
and javax.servlet.ServletException: Servlet.init() for servlet PersistentController threw exception
java.lang.NoSuchFieldError: name
    org.slf4j.impl.Log4jLoggerAdapter.<init>(Log4jLoggerAdapter.java:75)

   
solution: download a new http://www.slf4j.org/dist/slf4j-1.5.2.tar.gz
(having multiple javassist.jar doesn’t matter)
http://groups.google.com/group/comp.lang.java.programmer/browse_thread/thread/c6d647699b02fb5e/becc5c738902506b?tvc=2#becc5c738902506b

November 17, 2008

servlet problem: hibernate-validator (requestValidator.getInvalidValues(data) fails)

Filed under: JSP, Java, hibernate — xiaoxing @ 4:38 pm

This section of code fails (data is the bean object):

InvalidValue[] validationMessages;
ClassValidator requestValidator = new ClassValidator(data.getClass());
validationMessages = requestValidator.getInvalidValues(data);
//fails here!

Don’t know why but this works (“hobby” is one of the fields of the data bean):
requestValidator.getInvalidValues(data, “hobby”)

So, I modified the whole section to use request’s getParameterMap to traverse each bean property:
    InvalidValue[] validationMessages;
    List<InvalidValue[]> validationMsgList = new ArrayList<InvalidValue[]>();
    ClassValidator requestValidator = new ClassValidator(data.getClass());
    Map pMap = request.getParameterMap();
    Iterator ParIt = pMap.entrySet().iterator();
    while (ParIt.hasNext()) {
            Map.Entry pairs = (Map.Entry) ParIt.next();
            String key = “” + pairs.getKey();
            validationMessages = requestValidator.getInvalidValues(data, key);
            validationMsgList.add(validationMessages);
    }

App finally runs.

Blog at WordPress.com.