Ошибка BeanELResolver в Websphere

0

Ниже приведен мой код контроллера, который возвращает представление. Его работа прекрасна, если я развертываю и запускаю Tomcat 7, но проблема сохраняется, пока она развертывается на 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 com.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" в javax.el.BeanELResolver.invoke(BeanELResolver. java: 480) в javax.el.CompositeELResolver.invoke(CompositeELResolver.java:137) в org.apache.el.parser.AstValue.getValue(AstValue.java:162) на 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) на 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) в com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1224) в com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774) в com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456) в com.ibm.ws.webcontainer. servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) в com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:122) в com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.handleRequest(AbstractJSPExtensionServletWrappe r.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.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:193) в org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238) в 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.se rvice (HttpServlet.java:595) в javax.servlet.http.HttpServlet.service(HttpServlet.java:668) в com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1224) на com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774) в com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456) в com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) в com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1032) в com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87 ) в com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:895) в com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662) в com.ibm.ws.webcontainer.channel. WCChannelLink.ready(WCChannelLink.java:195) в com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:459) в com.ibm. ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:526) в com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:312) в com.ibm. ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:283) в 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) в com.ibm.io.async.AsyncChannelFuture $ 1.run(AsyncChannelFuture.java:205) в com.ibm.ws.util.ThreadPool $ Worker.run(ThreadPool.java:1814) Причиненный by: java.lang.IllegalAccessException: класс javax.el.BeanELResolver не может получить доступ к члену класса java.util.MapEntry с модификаторами "public" a t 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
Теги:
jstl

2 ответа

0

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

${entry.getKey()} 

вместо

${entry.key}

Первый допустим в реализации tomcat, но вызывает исключение в websphere.

0

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

В частности, этот фрагмент

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

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

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

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню