De request-dumper in Tomcat 8 geeft problemen met jsonrpc requests. De request-dumper gebruikt u voor debugging doeleinden om meer inzicht te krijgen in de request die worden afgehandeld op de Tomcat server. Ik had een client - server applicatie gebouwd in EGL. Een webclient die een restservice bevraagd. Lokaal in mijn ontwikkelomgeving werkte het prima. Echter gedeployed op een Tomcat 8 server kreeg ik foutmeldingen te zien. In de Tomcat error log vond ik het volgende:

04-Mar-2020 13:45:46.998 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 52805 ms
No JSON? ?????????????????????
com.ibm.javart.json.TokenMgrError: Lexical error at line 1, column 1. Encountered: "\uffff" (65535), after : ""
at com.ibm.javart.json.JsonParserTokenManager.getNextToken(JsonParserTokenManager.java:544)
at com.ibm.javart.json.JsonParser.jj_consume_token(JsonParser.java:283)
at com.ibm.javart.json.JsonParser.Object(JsonParser.java:64)
at com.ibm.javart.json.JsonParser.ObjectParse(JsonParser.java:56)
etc...

Met Fiddler (monitoring tool voor o.a. http verkeer) heb ik de request en response bekeken.

{"headers" : {"JSONRPCError" : "%7B%22error%22+%3A+%7B%22name%22+%3A+%22JSONRPCError%22%2C+%22code%22+%3A+%22EGL1538E%22%2C+%22message%22+%3A+%22EGL1538E%3A+See+log.+ID%3AMar+4%2C+2020%2C+3%3A22%3A26+PM.3%22%2C+%22error%22+%3A+%7B%22messageID%22+%3A+%22EGL1538E%22%2C+%22message%22+%3A+%22EGL1538E%3A+See+log.+ID%3AMar+4%2C+2020%2C+3%3A22%3A26+PM.3%22%2C+%22source%22+%3A+4%2C+%22detail1%22+%3A+%22%22%2C+%22detail2%22+%3A+%22%22%2C+%22detail3%22+%3A+%22%22%2C+%22name%22+%3A+%22egl.core.ServiceInvocationException%22%7D%7D%7D"}, "status" : 500, "statusMessage" : "FAILED", "body" : "{\"error\" : {\"name\" : \"JSONRPCError\", \"code\" : \"EGL1538E\", \"message\" : \"EGL1538E: See log. ID:Mar 4, 2020, 3:22:26 PM.3\", \"error\" : {\"messageID\" : \"EGL1538E\", \"message\" : \"EGL1538E: See log. ID:Mar 4, 2020, 3:22:26 PM.3\", \"source\" : 4, \"detail1\" : \"\", \"detail2\" : \"\", \"detail3\" : \"\", \"name\" : \"egl.core.ServiceInvocationException\"}}}"}

Na vergelijken van de configuratie bestanden van mijn lokale Tomcat en de versie op de server zag ik alleen een verschil in de web.xml. Heeft u een vergelijkbaar probleem kijk dan eens in de web.xml van de Tomcat server waarop de applicatie is geinstalleerd. Ziet u dan het volgende geconfigureerd:

<filter>
   <filter-name>request-dumper</filter-name>
   <filter-class>
      org.apache.catalina.filters.RequestDumperFilter
   </filter-class>
</filter>

En eventueel:

<filter-mapping>
   <filter-name>request-dumper</filter-name>
    <url-pattern>*</url-pattern>
</filter-mapping>

Deze stukken configuratie heb ik in commentaar gezet ( <!-- --> er omheen). Hierna werkte mijn applicatie en werden de request netjes afgehandeld.