Пересылаемый запрос не передается, а пустой обрабатывается jboss eap 6.4 - PullRequest
0 голосов
/ 01 июля 2019

У меня есть проблема, связанная с HttpServletRequest. Каким-то образом его нельзя передать в вызываемый фильтр с помощью Forward.

Когда я пытаюсь получить доступ к полям по запросу и сеансу запроса, я получаю исключение нулевого указателя.

Вот код: Как вы можете видеть, я печатаю содержимое сессии непосредственно перед пересылкой запроса. И все поля, которые я вставил в него, есть. Я вижу это в логах.

    HttpServletRequest reqServ = (HttpServletRequest)request;
    Enumeration sessionKeys = reqServ.getSession().getAttributeNames();
    while (sessionKeys.hasMoreElements())
    {
      String key = (String)sessionKeys.nextElement();
      System.out.println(key + ": " + reqServ.getSession().getValue(key) + "<br>");
    }

    request.getRequestDispatcher("/jsp/XXXXX.jsp").forward(request, response);

запрос в этом форварде полностью заполнен и не пуст. Но фильтр, который вступает в силу, когда /jsp/XXXXX.do получает полностью пустой объект запроса, а сессия содержит только параметр LOCALE.

Из-за этого я не могу получить параметры, которые мне нужно использовать, и при попытке получить исключение нулевого указателя.

Вот файл struts-config.xml для XXXXX.jsp

    <action name="XXXXXFormBean" path="/XXXXX" scope="request" type="com.AAAAAA.service.actions.XXXXXAction"
        input="/jsp/XXXXX.jsp">
        <forward name="oneself" path="/jsp/XXXXX.jsp"></forward>
        <forward name="XXXXX" path="/jsp/XXXXX.jsp"></forward>
    </action>

Я искал такую ​​проблему в интернете и ничего не получил.

Я использую JBoss EAP 6.4

Распорки 1.3.8

Java 1.7

Что я могу сделать, чтобы решить эту проблему?

Спасибо.

Вот полное сообщение об ошибке с трассировкой, которую я получил.

    14:25:57,414 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/BBBBBBB].[action]] (http-localhost/127.0.0.1:8080-2) JBWEB000236: Servlet.service() for servlet action threw exception: java.lang.NullPointerException
        at com.AAAAAA.service.actions.XXXXX.execute(XXXXX.java:75) [classes:]
        at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58) [struts-core-1.3.8.jar:1.3.8]
        at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67) [struts-core-1.3.8.jar:1.3.8]
        at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51) [struts-core-1.3.8.jar:1.3.8]
        at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) [commons-chain-1.1.jar:1.1]
        at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304) [commons-chain-1.1.jar:1.1]
        at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) [commons-chain-1.1.jar:1.1]
        at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283) [struts-core-1.3.8.jar:1.3.8]
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) [struts-core-1.3.8.jar:1.3.8]
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462) [struts-core-1.3.8.jar:1.3.8]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-2.jar:1.0.2.Final-redhat-2]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-2.jar:1.0.2.Final-redhat-2]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at com.AAAAAA.service.filter.RequestEncodingFilter.doFilter(RequestEncodingFilter.java:41) [classes:]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:150) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:854) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
        at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_80]

1 Ответ

0 голосов
/ 03 июля 2019

Этот проект был написан примерно 13 лет назад, и в то время считалось, что изменение JSESSIONID вручную - хорошая вещь в WebSphere, и это не создает проблем с этим.Но с JBoss EAP 6.4 это создает проблему.Я изменил код JSSESIONID, чтобы он не менялся, и все получилось.

...