My problem is, that my app works fine run locally on Tomcat server, but throws errors on server with installed glassfish. Whole problem is that i'm iterate looking through HashMap in JSTL. Server throws an stack as below:
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)
problem is caused by code:
<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>
Where element.getPreparedParameters()
returns HashMap
.
How can i make it work?