lluismf
(Lluis Martinez)
April 21, 2015, 6:56pm
1
I just ran the legacy webapp from master and the concept view throws an exception (screen is blank)
Apr 21, 2015 8:53:23 PM org.apache.jasper.compiler.Compiler generateClass
SEVERE: Error compiling file: C:\Users\lluis\git\openmrs-core\webapp\target\tmp\jsp\org\apache\jsp\WEB_002dINF\view\dictionary\concept_jsp.java
2015-04-21 20:53:23.881:WARN:oejs.ServletHandler:
org.apache.jasper.JasperException: PWC6033: Error in Javac compilation for JSP||PWC6197: An error occurred at line: 288 in the jsp file: /WEB-INF/view/dictionary/concept.jsp|PWC6199: Generated servlet error:|incompatible types| required: java.lang.String| found: org.springframework.web.servlet.support.BindStatus||PWC6199: Generated servlet error:|incompatible types| required: org.springframework.web.servlet.support.BindStatus| found: java.lang.String||
I did a mvn clean install and the build was fine. It seems a Spring issue, specifically related to custom tag.
Removing the tag using the property command.concept.displayPrecision makes the form to display fine. Can be related to the new Spring version?
raff
(Rafal Korytkowski)
April 22, 2015, 10:46am
2
It may be related to the Spring upgrade. I’m guessing the issue is with using spring:bind inside another spring:bind, which feels incorrect (though I didn’t look in docs to back it up).
<spring:bind path="command.concept.precise">
<c:if test="${status.value}">
<th><openmrs:message code="ConceptNumeric.displayPrecision"/></th>
<td colspan="2">
<spring:bind path="command.concept.displayPrecision">
<c:out value="${status.value}" />
<c:if test="${status.errorMessage != ''}"><span class="error">${status.errorMessage}</span></c:if>
</spring:bind>
</td>
</c:if>
</spring:bind>
Could you please try changing that to:
<c:if test="${command.concept.precise}">
<th><openmrs:message code="ConceptNumeric.displayPrecision"/></th>
<td colspan="2">
<spring:bind path="command.concept.displayPrecision">
<c:out value="${status.value}" />
<c:if test="${status.errorMessage != ''}"><span class="error">${status.errorMessage}</span></c:if>
</spring:bind>
</td>
</c:if>
dkayiwa
(Daniel Kayiwa)
April 22, 2015, 11:05am
3
lluismf
(Lluis Martinez)
April 22, 2015, 11:58am
4
Yes, that’s it. It seems like previous versions of Spring didn’t complain about nesting spring:bind.