我的问题是,我的应用程序在 Tomcat 服务器上本地运行良好,但在安装 glassfish 的服务器上抛出错误。整个问题是我在 JSTL 中遍历 HashMap。服务器抛出如下堆栈:
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
。
我怎样才能让它工作?