Моя проблема заключается в том, что мое приложение работает нормально на локальном сервере Tomcat, но выдает ошибки на сервере с установленной стеклянной платой. Вся проблема в том, что я итеративно просматриваю HashMap в JSTL. Сервер бросает стек, как показано ниже:
Servlet.service() for servlet jsp threw exception java.lang.IllegalAccessException:
Class javax.el.BeanELResolver can not access a member of class java.util.HashMap$Entry with modifiers "public final"
at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:95)
at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(AccessibleObject.java:261)
at java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:253)
проблема вызвана кодом:
<c:forEach items="${element.getPreparedParameters()}" var="parametr" varStatus="j">
documents["${i.index}"]["param"]=new Array();
documents["${i.index}"]["param"]["key"] = "${parametr.getKey()}";
documents["${i.index}"]["param"]["value"] = "${parametr.getValue()}";
</c:forEach>
Где element.getPreparedParameters()
возвращает HashMap
.
Как я могу заставить его работать?