You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2018/07/29 07:36:28 UTC

[Bug 62579] New: After update to Apache 9.0.10 gets a double error

https://bz.apache.org/bugzilla/show_bug.cgi?id=62579

            Bug ID: 62579
           Summary: After update to Apache 9.0.10 gets a double error
           Product: Tomcat 9
           Version: 9.0.10
          Hardware: Other
                OS: Linux
            Status: NEW
          Severity: critical
          Priority: P2
         Component: Catalina
          Assignee: dev@tomcat.apache.org
          Reporter: genialjacob@gmail.com
  Target Milestone: -----

Created attachment 36056
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=36056&action=edit
Logs and apache tomcat configuration files.

Fist of all we decided to update the Apache version from Apache Tomcat 7.0.62
to Apache Tomcat 9.0.10. This project is a web application based on AngularJS +
Apache Tomcat + Java + Spring Framework + MySQL

We had never seen an error like this. The most approximation we found in Google
about this is: https://github.com/jenkinsci/stashnotifier-plugin/issues/84

Where the solution is update the httpcore jar, that we did it and not work for
us.

Note: full error trace at the end.

Our application works fine except at this point, where we get two errors, the
first error is:

Handler dispatch failed; nested exception is java.lang.NoSuchMethodError:
org.apache.http.impl.conn.PoolingHttpClientConnectionManager.setValidateAfterInactivity(I)V

After this if you refresh the page in the browser you get this second error:

Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError:
Could not initialize class org.apache.http.client.fluent.Executor

You can see this at this URL in our application:

https://registro.servidorddg.com/api/services/events/62/online-payment?temporalDataId=20008&amount=5.0&paymentGatewayId=19&lang=es

Remember that this not happen in Apache Tomcat 7.0.62.

Basically, this section of the code of our application differs of the rest
because here we do a POST call to a external service (URL) from the BACK-END.

Java>

JSONObject json = postToApi( formAction, parameters );

 /**
         * initiates HTTP POST toward the API (via {@link HttpClient})
(outgoing request)
         * 
         * @param url
         * @param paramMap
         * @return the response as a parsed JSONObject
         * 
         * @throws PostToApiException
         */
        public static JSONObject postToApi(final String url, final Map<String,
String> paramMap) throws PostToApiException {

                final List<NameValuePair> paramList;
                final String apiResponseStr;

                try {
                        Utilities.log( "postToApi paramMap ---" );

                        for (Entry<String, String> entry : paramMap.entrySet())
{
                        Utilities.log(entry.getKey() + "=" + entry.getValue());
                    }

                        Utilities.log( paramMap.toString() );
                        Utilities.logObject( paramMap );
                        paramList = getForm(paramMap).build();
                } catch (Exception e) {
                        throw new PostToApiException("cannot build bodyForm for
the HTTP request", e);
                }

                try {
                        Utilities.log( "Before apiResponse");
                        /*HttpResponse apiResponse = 
                                       
Request.Post(url).bodyForm(paramList).execute().returnResponse();*/


                        Request request = Request.Post(url);
                        Request request2 = request.bodyForm(paramList);
                        Response response = request2.execute();
                        HttpResponse apiResponse  = response.returnResponse();

                        Utilities.log( "After apiResponse");
                        Utilities.log( "Before apiResponseStr");
                        apiResponseStr = new
BasicResponseHandler().handleResponse(apiResponse);
                        Utilities.log( "After apiResponseStr" + apiResponseStr
);

                } catch (Exception e) {
                        throw new PostToApiException("HTTP POST error", e);
                }

                try {
                        return new JSONObject(apiResponseStr);
                } catch (Exception e) {
                        throw new PostToApiException("failed to parse API call
response (not JSON?)", e);
                }

        }

Remember, our application only fails with Apache Tomcat 9.0.10
Another important thing: Normally when there's an exception in the application,
it is logged in the logs of TOMCAT (catalina.out), but these two doesn't appear
there (you can see the logs attached).

----------------------------------------------------------------------------

Full errors trace:


Estado HTTP 500 – Internal Server Error
Tipo Informe de Excepción

mensaje Handler dispatch failed; nested exception is
java.lang.NoSuchMethodError:
org.apache.http.impl.conn.PoolingHttpClientConnectionManager.setValidateAfterInactivity(I)V

descripción El servidor encontró un error interno que hizo que no pudiera
rellenar este requerimiento.

excepción

org.springframework.web.util.NestedServletException: Handler dispatch failed;
nested exception is java.lang.NoSuchMethodError:
org.apache.http.impl.conn.PoolingHttpClientConnectionManager.setValidateAfterInactivity(I)V
       
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)
       
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
       
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
       
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
       
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
        org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
       
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
       
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
causa raíz

java.lang.NoSuchMethodError:
org.apache.http.impl.conn.PoolingHttpClientConnectionManager.setValidateAfterInactivity(I)V
        org.apache.http.client.fluent.Executor.<clinit>(Executor.java:99)
        org.apache.http.client.fluent.Request.execute(Request.java:177)
       
com.desafioguerreros.infrastructure.payments.universalpay.UniversalPayPaymentsServices.postToApi(UniversalPayPaymentsServices.java:160)
       
com.desafioguerreros.infrastructure.payments.universalpay.UniversalPayPaymentsServices.buildPaymentForm(UniversalPayPaymentsServices.java:242)
       
com.desafioguerreros.events.core.EventRestFacade.onlinePaymentForm(EventRestFacade.java:1405)
        sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
       
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        java.lang.reflect.Method.invoke(Method.java:498)
       
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
       
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
       
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
       
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
       
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
       
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
       
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
       
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
       
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
       
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
       
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
        org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
       
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
       
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
nota La traza completa de la causa de este error se encuentra en los archivos
de diario del servidor.

Apache Tomcat/9.0.10





Estado HTTP 500 – Internal Server Error
Tipo Informe de Excepción

mensaje Handler dispatch failed; nested exception is
java.lang.NoClassDefFoundError: Could not initialize class
org.apache.http.client.fluent.Executor

descripción El servidor encontró un error interno que hizo que no pudiera
rellenar este requerimiento.

excepción

org.springframework.web.util.NestedServletException: Handler dispatch failed;
nested exception is java.lang.NoClassDefFoundError: Could not initialize class
org.apache.http.client.fluent.Executor
       
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:982)
       
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
       
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
       
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
       
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
        org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
       
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
       
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
causa raíz

java.lang.NoClassDefFoundError: Could not initialize class
org.apache.http.client.fluent.Executor
        org.apache.http.client.fluent.Request.execute(Request.java:177)
       
com.desafioguerreros.infrastructure.payments.universalpay.UniversalPayPaymentsServices.postToApi(UniversalPayPaymentsServices.java:160)
       
com.desafioguerreros.infrastructure.payments.universalpay.UniversalPayPaymentsServices.buildPaymentForm(UniversalPayPaymentsServices.java:242)
       
com.desafioguerreros.events.core.EventRestFacade.onlinePaymentForm(EventRestFacade.java:1405)
        sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
       
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        java.lang.reflect.Method.invoke(Method.java:498)
       
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
       
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
       
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
       
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
       
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
       
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
       
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
       
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
       
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
       
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
       
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
        org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
       
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
       
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
nota La traza completa de la causa de este error se encuentra en los archivos
de diario del servidor.

Apache Tomcat/9.0.10

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[Bug 62579] After update to Apache 9.0.10 gets a double error

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=62579

Mark Thomas <ma...@apache.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |INVALID
             Status|NEW                         |RESOLVED

--- Comment #1 from Mark Thomas <ma...@apache.org> ---
This is an application error not a Tomcat error related to your use of the HTTP
client.

You might be able to get support on the Tomcat users mailing list although you
might have more luck with the HTTP client lists.

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org