tomcat服务器问题与angular api请求

问题描述 投票:1回答:1

这是我从角度接收的身体信息。想了解哪个是这个问题的根本原因。我不确定tomcat或angular的哪个部分正在创建此问题。任何猜测?

</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)
</pre><p><b>Root Cause</b></p><pre>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)
</pre><p><b>Note</b> The full stack trace of the root cause is available in the server logs.</p><hr class="line" /><h3>Apache Tomcat/8.5.33</h3></body></html>

编辑:我能够解决看起来的问题。问题是我在所有API请求中都使用了JDBC单例,但JDBC的设置方式是使用语句对象运行查询的数据库连接。因此,当我尝试使用多个请求时,请求有时会在语句仍在使用时发生冲突,但另一个请求却想要获取它。

java angular tomcat
1个回答
0
投票

根据给出的信息,很难判断真正的根本原因。从数据库读取时,显示的跟踪显示NullPointerException。这个电话似乎来自com.idem.api.SampleService.getAllSamples。我认为这是Java代码的一部分(部署到Tomcat)。

在接口级别(Angular / backend之间),您应该引入一些验证,例如对于从Angular前端传递到后端的意外null值。这有助于澄清真正的根本原因。

© www.soinside.com 2019 - 2024. All rights reserved.