2017-11-03 18 views
0

HTTP POSTを使用して私のフロントエンドからjson配列を取得するJava RESTFUL Webサービスがあります。 json配列はフォーム内に動的に作成され、ボタンをクリックしてフォームに行を追加すると奇妙なことに、1行で提出するとうまく動作し、データベースに情報が追加されますが、試してみると2行以上私は500エラーを取得します。おそらく、私のFORループは、json配列を反復する方法ではありませんか?json配列をループしようとしているときにHTTP 500エラーが発生しました

HTTP POST

postNeuromotora(params){ 
    let headers = new Headers(); 
    headers.append('Content-type','application/json'); 
    return this.http.post(`${this.api}neuromotora/`,params,{ 
     headers: headers 
    }).map(
    (res:Response) => {return res.json();} 
); 

    } 

http経由で送信されたJSON出力は、この

"[ { "pacienteid": 4, "nervonome": "Mediano", "ladonervo": "Direito",      "latencia": "2", "amplitudedistal": "1", "amplitudeprox": "321", "velocidade": "321", "ondaf": "4" }, { "pacienteid": 4, "nervonome": "Ulnar", "ladonervo": "Esquerdo", "latencia": "3", "amplitudedistal": "2", "amplitudeprox": "321", "velocidade": "312", "ondaf": "66" }]" 

Neuromotora Javaファイルです>

public class Neuromotora { 
private int neuromotoraid; 
private String latencia; 
private String amplitudedistal; 
private String amplitudeprox; 
private String nervonome; 
private String ladonervo; 
private String velocidade; 
private String ondaf; 
private int pacienteid; 
} 

neuromotoraDAO

内のInsertメソッド

とTomcatの

@POST 
    @Consumes(MediaType.APPLICATION_JSON) 
    @Produces({MediaType.APPLICATION_JSON}) 
    @Path("/neuromotora/") 
    public Response createNeuromotora(List<Neuromotora> n) throws SQLException, ClassNotFoundException{ 
     neuromotoraDAO dao = new neuromotoraDAO(); 

     dao.insert(n); 

     return Response 
      .status(200) 
      .header("Access-Control-Allow-Origin", "*") 
      .header("Access-Control-Allow-Headers", "origin, content-type, accept, authorization") 
      .header("Access-Control-Allow-Credentials", "true") 
      .header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD") 
      .header("Access-Control-Max-Age", "1209600") 
      .entity(n) 
      .build(); 

    } 

Stactraceが

03-Nov-2017 08:51:04.620 SEVERE [http-nio-8080-exec-348] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [io.github.dggodoi.aprendendo.java.backend.MyApplication] in context with path [/aprendendo-java-backend] threw exception [org.glassfish.jersey.server.ContainerException: org.postgresql.util.PSQLException: No results were returned by the query.] with root cause 
org.postgresql.util.PSQLException: No results were returned by the query. 
    at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:117) 
    at io.github.dggodoi.aprendendo.java.data.neuromotoraDAO.insert(neuromotoraDAO.java:45) 
    at io.github.dggodoi.aprendendo.java.backend.controllers.ChamadoController.createNeuromotora(ChamadoController.java:172) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:76) 
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:148) 
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:191) 
    at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:200) 
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:103) 
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:493) 
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:415) 
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:104) 
    at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:277) 
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:272) 
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:268) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:316) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:298) 
    at org.glassfish.jersey.internal.Errors.process(Errors.java:268) 
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:289) 
    at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:256) 
    at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:703) 
    at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:416) 
    at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:370) 
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:389) 
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:342) 
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:229) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 
    at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:198) 
    at com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:244) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) 
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) 
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803) 
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) 
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459) 
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 
    at java.lang.Thread.run(Thread.java:748) 
+0

500は内部サーバーエラーです。ログファイルを調べると、問題がどこにあるのかがわかります – Jens

+0

03-Nov-2017 08:27:29.839 SEVERE [http-nio-8080-exec-326] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.serviceパス[/ aprendendo-java-backend]のコンテキストでサーブレット[io.github.dggodoi.aprendendo.java.backend.MyApplication]が例外を投げた[org.glassfish.jersey.server.ContainerException:org.postgresql.util。 PSQLException:クエリによって結果が返されませんでした。]根本原因 org.postgresql.util.PSQLException:クエリによって結果が返されませんでした。このエラーを探してみよう –

+0

編集機能を使用して、スタックトレース全体を質問に追加します。 – Jens

答えて

0

は、私が代わりにクエリののexecuteUpdateを使用していたようだともcon.commitは()もカントログ私のJavaのコントローラでPOSTメソッドforループの内部では、クエリを実行した後に閉じていました。今それは動作します!ありがとう

関連する問題