Tomcat выдает ошибку 500 после ответа 200

Я столкнулся с этой странной проблемой. У меня есть веб-приложение, развернутое на сервере Tomcat. Пытаюсь вызвать услуги этого приложения через почтальона. Некоторые службы работают нормально, но для некоторых Tomcat дает следующие журналы -

27-Sep-2018 05:33:17.773 INFO [http-nio-8080-exec-5] 
org.glassfish.jersey.filter.LoggingFilter.log 5 * Server responded with a 
response on thread http-nio-8080-exec-5
5 < 200
5 < Content-Type: application/json

27-Sep-2018 05:33:17.867 INFO [http-nio-8080-exec-5] 
org.glassfish.jersey.filter.LoggingFilter.log 6 * Server responded with a 
response on thread http-nio-8080-exec-5
6 < 500

Я просмотрел журналы серверов и приложений. Ничто не указывает на причину. И все журналы отладки в моем приложении распечатываются успешно, что заставляет меня думать, что нет проблем с моим приложением, а с конфигурацией сервера. Пожалуйста, помогите мне с возможными решениями.

Web.xml -

<?xml version = "1.0" encoding = "UTF-8"?>
<web-app xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xmlns = "http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id = "WebApp_ID" version = "3.0">
<distributable />
<display-name>afrasia-services</display-name>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext-rest.xml
    </param-value>
</context-param>

<context-param>
    <param-name>log4j-config-location</param-name>
    <param-value>classpath:log4j.properties</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<listener>
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>

<!-- START AUTHORIZATION: Spring OAuth2 -->
<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<!-- END AUTHORIZATION -->

<filter>
  <filter-name>cors</filter-name>
  <filter-class>com.afrAsia.filters.CORSFilter</filter-class>
</filter>

<filter-mapping>
  <filter-name>cors</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>


<!-- servlet> <servlet-name>DigitalTransaction</servlet-name> <servlet-class>com.sun.xml.ws.transport.http.servlet.WSSpringServlet</servlet-class> 
    </servlet> <servlet-mapping> <servlet-name>DigitalTransaction</servlet-name> 
    <url-pattern>/*</url-pattern> </servlet-mapping -->

<servlet>
    <servlet-name>REST-Project</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>com.afrAsia.rest,com.fasterxml.jackson.jaxrs.json</param-value>
    </init-param>
    <init-param>
        <param-name>jersey.config.server.provider.classnames</param-name>
        <param-value>org.glassfish.jersey.filter.LoggingFilter;org.glassfish.jersey.media.multipart.MultiPartFeature</param-value>
    </init-param>
    <init-param>
    <param-name>dispatchOptionsRequest</param-name>
        <param-value>true</param-value>
        </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>REST-Project</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>spring</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>



<servlet-mapping>
    <servlet-name>spring</servlet-name>
    <url-pattern>/oauth/token</url-pattern>
    <url-pattern>/*/request_otp</url-pattern>
    <url-pattern>/*/sign_in</url-pattern>
    <url-pattern>/*/*</url-pattern>
</servlet-mapping>
</web-app>

[1] Пожалуйста, добавьте тег Джерси к своему сообщению. [2] См. Почему у Джерси нет журнала ошибок при статусе 500? относительно отсутствия трассировки стека для ошибки 500 в журнале.

skomisa 27.09.2018 19:55

Я попробовал решение ExceptionMapper, а также другие фильтры, которые улавливают ответ перед его отправкой во внешний интерфейс, но ничто не может поймать ответ 500. Они ловят только 200 ответов. Я также пробовал использовать старую версию Tomcat. Но это тоже не сработало. Я думаю, что с моим файлом web.xml возникла какая-то проблема.

Avisha 28.09.2018 08:22

[1] Хорошо, обновите свой пост, добавив web.xml. [2] Какую версию Tomcat вы используете?

skomisa 28.09.2018 13:44

Я обновил свой пост с помощью web.xml и попробовал версии apache-tomcat-7.0.91-windows-x64 и apache-tomcat-9.0.0.M19-windows-x64

Avisha 28.09.2018 13:52

В вашем файле web.xml нет закрывающего тега </web-app>.

skomisa 28.09.2018 14:21

Извините, здесь произошла опечатка. Тег есть в моем исходном xml.

Avisha 28.09.2018 16:32
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
6
219
0

Другие вопросы по теме