2014-02-24 3 views
0

Ниже приведен код моего контроллера, который возвращает представление. Его работа прекрасна, если я развертываю и запускаю Tomcat 7, но проблема сохраняется, пока она развертывается на Websphere.Ошибка BeanELResolver на Websphere

@RequestMapping(value = "/review_and_confirm_travel_detail.html", method = RequestMethod.POST) 
public ModelAndView confirmTravelDetails(@ModelAttribute ViewQuote viewQuote , 
     HttpServletRequest httpServletRequest, 
     HttpServletResponse httpServletResponse, Model model) throws Exception { 

    ArrayList<String> stopsList = new ArrayList<String>(); 
    RequestBuilderUtil.getStopsRequestString(viewQuote.getStopsValuesForRequest() , stopsList , this); 

    List<String > specialInputList = getSpecialInputString(viewQuote.getSpecialInputs()); 
    List<String> specialInputValues = getSpecialInputString(viewQuote.getSpecialInputValues()); 
    Map<String , String > spInputMap =getSpecialInputMap(viewQuote.getSpecialInputs(), viewQuote.getSpecialInputValues()); 
    ModelAndView modelAndView = new ModelAndView("review_and_confirm_travel_detail"); 
    modelAndView.addObject("specialInputList", specialInputList); 
    modelAndView.addObject("specialInputValues", specialInputValues); 
    modelAndView.addObject("specialInputMap", spInputMap); 
    modelAndView.addObject("stopsList", stopsList); 
    return modelAndView; 
} 

Кроме того, следующая часть JSP вызывает ошибку.

<div class="table_review_confirm_travel_left"> 
    <table id= "specialInputTable"align="center" valign="top" cellpadding="3" cellspacing="0" border="0" class="td-padding1"> 

     <tr><td colspan="2" style="padding-left:5px; background-color:#e1e1e1;font-weight:bold"> 
       Special Inputs 
      </td> 
     </tr> 
     <core:forEach items="${specialInputMap}" var= "spInput"> 
     <core:if test="${!spInput.equals('')}"> 
     <tr><td nowrap style="padding-left: 20px;"> 
       ${spInput.key} 
      </td> 
      <td nowrap style="padding-left: 10px;"> 
      <input id ="specialInputName" type="hidden" name="specialInputName" value="${spInput.key}"> 
       <input type="text" placeholder="${spInput.value}" name="specialInputValue" onkeypress="return validateAlphaNumeric(event)"> 
      </td> 
     </tr> 
     </core:if> 
    <!-- <script type="text/javascript" charset="utf-8"> 
     var inputName =""; 
     $(function() { 
      var specialInputName = document.getElementById('specialInputName'); 
      inputName = inputName + specialInputName.value(); 
     }); 

     </script> --> 
     </core:forEach> 
    </table>  
</div> 

Вы могли бы пойти, хотя в следующей строке, эти журналы ошибок с сервера:.

[2/23/14 23: 40: 06: 697 EST] 00000166 сервлет E ком .ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: Исключение было выбрано одним из методов службы сервлета [/WEB-INF/views/review_and_confirm_travel_detail.jsp] в приложении [CESDirect_war]. Исключение создано: [javax.el.ELException: java.lang.IllegalAccessException: класс javax.el.BeanELResolver не может получить доступ к члену класса java.util.MapEntry с модификаторами «public» at javax.el.BeanELResolver.invoke (BeanELResolver .java: 480) at javax.el.CompositeELResolver.invoke (CompositeELResolver.java:137) at org.apache.el.parser.AstValue.getValue (AstValue.java:162) at org.apache.el.parser .AstNot.getValue (AstNot.java:44) на org.apache.el.ValueExpressionImpl.getValue (ValueExpressionImpl.java:283) на org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate (PageContextImpl.java:778) at com.ibm._jsp._review_5F_and_5F_confirm_5F_travel_5F_detail._jspx_meth_core_if_6 (_review_5F_and_5F_confirm_5F_travel_5F_detail.java:565) на com.ibm._jsp._review_5F_and_5F_confirm_5F_travel_5F_detail._jspx_meth_core_forEach_1 (_review_5F_and_5F_confirm_5F_travel_5F_detail.java:613) в com.ibm._jsp._review_5F_and_5F_confirm_5F_travel_5F_detail._jspx_meth_core_if_5 (_review_5F_and_5F_confirm_5F_travel_5F_detail.java:657) в com.ibm._jsp._review_5F_and_5F_confirm_5F_travel_5F_detail._jspx_meth_form_form_0 (_review_5F_and_5F_confirm_5F_travel_5F_detail. Java: 952) на com.ibm._jsp._review_5F_and_5F_confirm_5F_travel_5F_detail._jspService (_review_5F_and_5F_confirm_5F_travel_5F_detail.java:267) на com.ibm.ws.jsp.runtime.HttpJspBase.service (HttpJspBase.java:99) на javax.servlet. http.HttpServlet.service (HttpServlet.java:668) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service (ServletWrapper.java:1224) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest (ServletWrapper.java:774) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest (ServletWrapper.java:456) at com.ibm. ws.webcontainer.servlet.ServletWrapperImpl.handleRequest (ServletWrapperImpl.java:178) at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest (GenericServletWrapper.java:122) at com.ibm.ws.jsp.webcontainerext. AbstractJSPExtensionServletWrapper.handleRequest (AbstractJSPExtensionServletWrapper.java:216) на com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters (WebAppFilterManager.java:1032) на com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch (WebAppRequestDispatcher. java: 1384) at com.ibm.ws.webcontainer.webapp.WebAp pRequestDispatcher.forward (WebAppRequestDispatcher.java:193) at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel (InternalResourceView.java:238) at org.springframework.web.servlet.view.AbstractView.render (AbstractView. Java: 250) в org.springframework.web.servlet.DispatcherServlet.render (DispatcherServlet.java:1063) на org.springframework.web.servlet.DispatcherServlet.doDispatch (DispatcherServlet.java:801) на org.springframework. web.servlet.DispatcherServlet.doService (DispatcherServlet.java:719) на org.springframework.web.servlet.FrameworkServlet.processRequest (FrameworkServlet.java:644) на org.springframework.web.servlet.FrameworkServlet.doPost (FrameworkServlet.java:560) на javax.servlet.http.HttpServlet.service (HttpServlet.java:595) at javax.servlet.http.HttpServlet.service (HttpServlet.java:668) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service (ServletWrapper.java:1224) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest (ServletWrapper.java:774) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest (ServletWrapper.java:456) at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest (ServletWrapperImpl.java:178) в com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters (WebAppFilterManager.java:1032) at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest (CacheServletWrapper.java:87) at com.ibm. ws.webcontainer.WebContainer.handleRequest (WebContainer.java:895) at com.ibm.ws.webcontainer.WSWebContainer.handleRequest (WSWebContainer.java:1662) at com.ibm.ws.webcontainer.channel.WCChannelLink.ready (WCChannelLink.java:195) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination (HttpInboundLink.java:459) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink. handleNewRequest (HttpInboundLink.java:526) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest (HttpInboundLink.java:312) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready (HttpInboundLink.java:283) at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators (NewConnectionInitialReadCallback.java:214) на com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete (NewConnectionInitialReadCallback.java:113) на com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted (AioReadCompletionListener.java:165) на com.ibm.io.async.AbstractAsyncFuture.invokeCallback (AbstractAsyncFuture.java:217) at com.ibm.io.async.AsyncChannelFuture $ 1.run (AsyncChannelFuture.java:205) at com.ibm.ws.util.ThreadPool $ Worker.run (ThreadPool.java:1814) Вызвано: java.lang.IllegalAccessException: класс javax.el.BeanELResolver не может ccess член класса java.util.MapEntry с модификаторами «public» at sun.reflect.Reflection.ensureMemberAccess (Reflection.java:77) по адресу java.lang.reflect.Method.invoke (Method.java:602) в javax.el.BeanELResolver.invoke (BeanELResolver.java:476) ... подробнее 49 ]

[2/23/14 23:40:06:701 EST] 00000166 LocalTranCoor E WLTC0017E: Resources rolled back due to setRollbackOnly() being called. 
[2/23/14 23:40:06:706 EST] 00000166 servlet  E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0014E: Uncaught service() exception root cause dispatcher: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is javax.el.ELException: java.lang.IllegalAccessException: Class javax.el.BeanELResolver can not access a member of class java.util.MapEntry with modifiers "public" 
     at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:656) 
     at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:595) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) 
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1224) 
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774) 
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456) 
     at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) 
     at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1032) 
     at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87) 
     at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:895) 
     at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662) 
     at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195) 
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459) 
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526) 
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312) 
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:283) 
     at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214) 
     at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113) 
     at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) 
     at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) 
     at com.ibm.io.async.AsyncChannelFuture$1.run(AsyncChannelFuture.java:205) 
     at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1814) 
Caused by: javax.el.ELException: java.lang.IllegalAccessException: Class javax.el.BeanELResolver can not access a member of class java.util.MapEntry with modifiers "public" 
     at javax.el.BeanELResolver.invoke(BeanELResolver.java:480) 
     at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:137) 
     at org.apache.el.parser.AstValue.getValue(AstValue.java:162) 
     at org.apache.el.parser.AstNot.getValue(AstNot.java:44) 
     at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:283) 
     at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:778) 
     at com.ibm._jsp._review_5F_and_5F_confirm_5F_travel_5F_detail._jspx_meth_core_if_6(_review_5F_and_5F_confirm_5F_travel_5F_detail.java:565) 
     at com.ibm._jsp._review_5F_and_5F_confirm_5F_travel_5F_detail._jspx_meth_core_forEach_1(_review_5F_and_5F_confirm_5F_travel_5F_detail.java:613) 
     at com.ibm._jsp._review_5F_and_5F_confirm_5F_travel_5F_detail._jspx_meth_core_if_5(_review_5F_and_5F_confirm_5F_travel_5F_detail.java:657) 
     at com.ibm._jsp._review_5F_and_5F_confirm_5F_travel_5F_detail._jspx_meth_form_form_0(_review_5F_and_5F_confirm_5F_travel_5F_detail.java:952) 
     at com.ibm._jsp._review_5F_and_5F_confirm_5F_travel_5F_detail._jspService(_review_5F_and_5F_confirm_5F_travel_5F_detail.java:267) 
     at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:99) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) 
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1224) 
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774) 
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456) 
     at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) 
     at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:122) 
     at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:216) 
     at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1032) 
     at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:1384) 
     at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:193) 
     at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) 
     at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250) 
     at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1063) 
     at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:801) 
     at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
     at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) 
     ... 22 more 
Caused by: java.lang.IllegalAccessException: Class javax.el.BeanELResolver can not access a member of class java.util.MapEntry with modifiers "public" 
     at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:77) 
     at java.lang.reflect.Method.invoke(Method.java:602) 
     at javax.el.BeanELResolver.invoke(BeanELResolver.java:476) 
     ... 49 more 

[2/23/14 23:40:06:741 EST] 00000166 webapp  E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet Error]-[dispatcher]: javax.el.ELException: java.lang.IllegalAccessException: Class javax.el.BeanELResolver can not access a member of class java.util.MapEntry with modifiers "public" 
     at javax.el.BeanELResolver.invoke(BeanELResolver.java:480) 
     at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:137) 
     at org.apache.el.parser.AstValue.getValue(AstValue.java:162) 
     at org.apache.el.parser.AstNot.getValue(AstNot.java:44) 
     at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:283) 
     at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:778) 
     at com.ibm._jsp._review_5F_and_5F_confirm_5F_travel_5F_detail._jspx_meth_core_if_6(_review_5F_and_5F_confirm_5F_travel_5F_detail.java:565) 
     at com.ibm._jsp._review_5F_and_5F_confirm_5F_travel_5F_detail._jspx_meth_core_forEach_1(_review_5F_and_5F_confirm_5F_travel_5F_detail.java:613) 
     at com.ibm._jsp._review_5F_and_5F_confirm_5F_travel_5F_detail._jspx_meth_core_if_5(_review_5F_and_5F_confirm_5F_travel_5F_detail.java:657) 
     at com.ibm._jsp._review_5F_and_5F_confirm_5F_travel_5F_detail._jspx_meth_form_form_0(_review_5F_and_5F_confirm_5F_travel_5F_detail.java:952) 
     at com.ibm._jsp._review_5F_and_5F_confirm_5F_travel_5F_detail._jspService(_review_5F_and_5F_confirm_5F_travel_5F_detail.java:267) 
     at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:99) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) 
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1224) 
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774) 
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456) 
     at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) 
     at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:122) 
     at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrapper.java:216) 
     at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1032) 
     at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:1384) 
     at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:193) 
     at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) 
     at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250) 
     at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1063) 
     at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:801) 
     at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
     at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) 
     at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:595) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) 
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1224) 
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774) 
     at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456) 
     at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) 
     at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1032) 
     at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87) 
     at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:895) 
     at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662) 
     at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195) 
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459) 
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526) 
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312) 
     at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:283) 
     at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214) 
     at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113) 
     at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) 
     at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) 
     at com.ibm.io.async.AsyncChannelFuture$1.run(AsyncChannelFuture.java:205) 
     at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1814) 
Caused by: java.lang.IllegalAccessException: Class javax.el.BeanELResolver can not access a member of class java.util.MapEntry with modifiers "public" 
     at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:77) 
     at java.lang.reflect.Method.invoke(Method.java:602) 
     at javax.el.BeanELResolver.invoke(BeanELResolver.java:476) 
     ... 49 more 

ответ

0

Я просто был очень похожий вопрос сам, и оказывается, что это различие в поведении между котом и реализация ELS websphere. Я думаю, что это жалуется (не очень очевидным образом), что тип класса, который он пытается использовать отражение для доступа к методу equals, не является публичным классом, поэтому контроль доступа к отражению не выполняется.

Специально для этого фрагмента

<core:forEach items="${specialInputMap}" var= "spInput"> 
<core:if test="${!spInput.equals('')}"> 

Я думаю, что это ставит объект класса типа java.util.MapEntry в переменную spInput и ELResolver затем проходит через методы в классе MapEntry найти метод Equals, но при попытке invoke метод equals находит класс MapEntry общедоступным.

Не уверен, что это java.util.MapEntry класс, хотя, не похож на стандартное солнце jdk.

Если вы перейдете на использование другого типа Map impl для передачи jsp, вы можете решить эту проблему.

В моем случае я получал список, чей тип класса был только видимостью пакета и вызывающим размером на нем в jsp, то есть <c:when test="${mylist.size() == 1}">, что было бы нормально в обычном коде, так как вызывает размер публичного метода через интерфейс List, но EL procesor для Websphere использует отражение для вызова метода в частном классе пакета и получает ошибку безопасности. Мы изменили, чтобы вернуть стандартный ArrayList вместо этого, чтобы решить проблему.

Похоже, что tomcat impl возвращает метод из интерфейса, реализуемого классом, если класс не является общедоступным, поэтому он немного более гибкий.

0

Просто для документирования другой причины, которая может вызвать эту проблему. Я столкнулся с точно такой же сообщение об ошибке при СПЯ используется

${entry.getKey()} 

вместо

${entry.key} 

Бывший является приемлемым в реализации TOMCAT, но вызывает исключение в WebSphere.

Смежные вопросы