Проблема с сервером Tomcat с запросом углового API - PullRequest
0 голосов
/ 26 сентября 2018

Вот сообщение о теле, которое я получаю от angular.Хотелось бы понять, что является коренной причиной этой проблемы.Я не совсем уверен, какая часть tomcat или angular создает эту проблему.Любые предположения?

<code></style></head><body><h1>HTTP Status 500 – Internal Server Error</h1><hr class="line" /><p><b>Type</b> Exception Report</p><p><b>Message</b> java.lang.NullPointerException</p><p><b>Description</b> The server encountered an unexpected condition that prevented it from fulfilling the request.</p><p><b>Exception</b></p><pre>javax.servlet.ServletException: java.lang.NullPointerException
    org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:432)
    org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:370)
    org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:389)
    org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:342)
    org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:229)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.apache.catalina.filters.ExpiresFilter.doFilter(ExpiresFilter.java:1232)
    org.apache.catalina.filters.CorsFilter.handleSimpleCORS(CorsFilter.java:271)
    org.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:158)

Основная причина

java.lang.NullPointerException
    com.mysql.cj.jdbc.result.ResultSetImpl.findColumn(ResultSetImpl.java:577)
    com.mysql.cj.jdbc.result.ResultSetImpl.getInt(ResultSetImpl.java:915)
    com.idem.api.SampleService.getSampleList(SampleService.java:263)
    com.idem.api.SampleService.getAllSamples(SampleService.java:147)
    sun.reflect.GeneratedMethodAccessor27.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:498)
    org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:76)
    org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:148)
    org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:191)
    org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:200)
    org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:103)
    org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:493)
    org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:415)
    org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:104)
    org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:277)
    org.glassfish.jersey.internal.Errors$1.call(Errors.java:272)
    org.glassfish.jersey.internal.Errors$1.call(Errors.java:268)
    org.glassfish.jersey.internal.Errors.process(Errors.java:316)
    org.glassfish.jersey.internal.Errors.process(Errors.java:298)
    org.glassfish.jersey.internal.Errors.process(Errors.java:268)
    org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:289)
    org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:256)
    org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:703)
    org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:416)
    org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:370)
    org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:389)
    org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:342)
    org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:229)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    org.apache.catalina.filters.ExpiresFilter.doFilter(ExpiresFilter.java:1232)
    org.apache.catalina.filters.CorsFilter.handleSimpleCORS(CorsFilter.java:271)
    org.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:158)

Примечание Полная трассировка стека основной причины доступна влоги сервера.

Apache Tomcat / 8.5.33

РЕДАКТИРОВАТЬ: Мне удалось решить проблему, кажется.Проблема заключалась в том, что я использовал синглтон JDBC для всех моих запросов API, но способ настройки JDBC заключается в том, что соединение с БД использует объект оператора для выполнения своих запросов.Поэтому, когда я пытаюсь использовать несколько запросов, запросы иногда вступают в конфликт, когда оператор все еще используется, но другой запрос хочет получить его вместо этого.

1 Ответ

0 голосов
/ 26 сентября 2018

С предоставленной информацией трудно судить о коренной причине реальной .Представленные трассировки показывают исключение NullPointerException при чтении из базы данных.Кажется, звонок поступил из com.idem.api.SampleService.getAllSamples.Я бы предположил, что это часть вашего Java-кода (развернутого в Tomcat).

На уровне интерфейса (между Angular / backend) вы должны ввести некоторую проверку, например, для неожиданных нулевых значений, передаваемых из Angular-интерфейса вбэкэндЭто поможет уточнить, где находится настоящая причина.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...