My ear file contains two wars, which requires to use two different versions of spring.jar. The layout is
The application can be started up correct. (I'm using WebSphere 184.108.40.206.) But when I come to a page with spring <form:form> being used. It gives me the exception:
-> app1-ejb.jar (manifest point to 1.2 jar)
-> app1.war (manifest point to 1.2 jar)
-> app2-ejb.jar (manifest point to 2.0.1 jar)
-> app2.war (manifest point to 2.0.1 jar)
The trace log shows that the call is from AbstractFormTag.evaluate().
java.lang.NoSuchMethodError: org.springframework.web.util.ExpressionEvaluationUtils: method evaluate(Ljava/lang/String;Ljava/lang/String;Ljavax/servlet/jsp/PageContext;)Ljava/lang/Object; not found
Does it mean that it is loading different version of spring?? Because:
- AbstractFormTag exists in Spring 2.0.1 only.
- ExpressionEvaluationUtils.evaluate(String,String,P ageContext) exists in Spring 2.0.1 but not 1.2
Currently all jsp in both wars config the taglib like this:
I tried to change to real uri (www.springframework.org/tags) but it seems that Websphere cannot recognize it.
<%@ taglib prefix="spring" uri="/WEB-INF/spring.tld" %>
<%@ taglib prefix="form" uri="/WEB-INF/spring-form.tld" %>
Thank you for you attention.