bireme / DeDup

Web service used to find similar documents stored in a Lucene index.
Other
0 stars 0 forks source link

Possível falha no método de atualização do serviço DeDup #29

Closed viniciusandrade closed 11 months ago

viniciusandrade commented 2 years ago

@heitorbarbieri verifiquei nos logs do FI-ADMIN uma grande quantidade de falhas de tentativas de atualização do índice de duplicados e fiz alguns testes locais e me parece que pode haver uma falha geral no serviço na parte de atualização.

Segue erro retornado usando aplicativo REST API com os seguintes parâmetros:

POST https://dedup.bireme.org/services/put/lilacs_Sas/LILACS_Sas_Seven/teste-1046821-es

Header: Content-type: 'application/json'

Body: { "ano_publicacao": "2022", "numero_fasciculo": "1", "volume_fasciculo": "2", "titulo_artigo": "teste manual (1)", "titulo_revista": "Revista de Teste", "autores": "Autor 1@Autor 2@Autor 3", "pagina_inicial": "30" }

<!doctype html><html lang="en"><head><title>HTTP Status 500 – Internal Server Error</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</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> org.glassfish.jersey.server.ContainerException: java.lang.NoClassDefFoundError: com&#47;fasterxml&#47;jackson&#47;databind&#47;ObjectMapper</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: org.glassfish.jersey.server.ContainerException: java.lang.NoClassDefFoundError: com&#47;fasterxml&#47;jackson&#47;databind&#47;ObjectMapper
    org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:392)
    org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:382)
    org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:345)
    org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:220)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
</pre><p><b>Root Cause</b></p><pre>org.glassfish.jersey.server.ContainerException: java.lang.NoClassDefFoundError: com&#47;fasterxml&#47;jackson&#47;databind&#47;ObjectMapper
    org.glassfish.jersey.servlet.internal.ResponseWriter.rethrow(ResponseWriter.java:249)
    org.glassfish.jersey.servlet.internal.ResponseWriter.failure(ResponseWriter.java:231)
    org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:436)
    org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:265)
    org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
    org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
    org.glassfish.jersey.internal.Errors.process(Errors.java:315)
    org.glassfish.jersey.internal.Errors.process(Errors.java:297)
    org.glassfish.jersey.internal.Errors.process(Errors.java:267)
    org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:318)
    org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:236)
    org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1010)
    org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:373)
    org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:382)
    org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:345)
    org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:220)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
</pre><p><b>Root Cause</b></p><pre>java.lang.NoClassDefFoundError: com&#47;fasterxml&#47;jackson&#47;databind&#47;ObjectMapper
    br.bireme.ngrams.NGrams.json2pipe(NGrams.java:299)
    br.bireme.ddp.DeDup.putDocument(DeDup.java:496)
    jdk.internal.reflect.GeneratedMethodAccessor57.invoke(Unknown Source)
    java.base&#47;jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.base&#47;java.lang.reflect.Method.invoke(Method.java:566)
    org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
    org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:151)
    org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:171)
    org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:195)
    org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:104)
    org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:402)
    org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:349)
    org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:106)
    org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:259)
    org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
    org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
    org.glassfish.jersey.internal.Errors.process(Errors.java:315)
    org.glassfish.jersey.internal.Errors.process(Errors.java:297)
    org.glassfish.jersey.internal.Errors.process(Errors.java:267)
    org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:318)
    org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:236)
    org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1010)
    org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:373)
    org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:382)
    org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:345)
    org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:220)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
</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/9.0.31 (Ubuntu)</h3></body></html>
heitorbarbieri commented 2 years ago

@viniciusandrade , por favor, verifique se o problema ainda persiste. Obrigado.

heitorbarbieri commented 2 years ago

@viniciusandrade, aguarde um pouco mais o seu teste, por favor.

heitorbarbieri commented 2 years ago

Bom dia @viniciusandrade, depois de algumas correções minhas, seguem alguns comentários:

1) Segundo a documentação em https://dedup.bireme.org , a função de deplicação com o método POST utiliza 'application/x-www-form-urlencoded' e não 'application/json' como feito no seu exemplo acima. 2) Ocorrências repetitivas são separadas por '//@//' e não por '@' como no caso dos autores exemplificados acima.

Segue um exemplo que fiz utilizando o curl:

heitor@heitor-340XAA-350XAA-550XAA:~$ curl -d "database=lilacs_Sas&schema=LILACS_Sas_Seven&ano_publicacao=2021&numero_fasciculo=1&volume_fasciculo=57&titulo_artigo=DESCARTES and the brain&titulo_revista=Rev. bras. neurol&autores=Engelhardt, Eliasz&pagina_inicial=39" -H "Content-Type: application/x-www-form-urlencoded" -X POST https://dedup.bireme.org/services/duplicates

e a correspondente resposta:

{"params":{"ano_publicacao":"2021","autores":"Engelhardt, Eliasz","database":"lilacs_Sas","id":"?","numero_fasciculo":"1","pagina_inicial":"39","schema":"LILACS_Sas_Seven","titulo_artigo":"DESCARTES and the brain","titulo_revista":"Rev. bras. neurol","volume_fasciculo":"57"},"total":1,"result":[{"score":"33.22961","similarity":"0.8636364","ano_publicacao":"2021","autores":"Engelhardt, Eliasz","database":"LILACS_Sas","id":"fiadmin-1177701","numero_fasciculo":"1","pagina_inicial":"39","titulo_artigo":"(en)DESCARTES and the brain","titulo_revista":"Rev. bras. neurol","volume_fasciculo":"57"}]}

Por favor, me avise se persistirem erros.

Abraços.

heitorbarbieri commented 2 years ago

@viniciusandrade , por favor, verifique se o problema ainda persiste. Obrigado.

viniciusandrade commented 11 months ago

Testes OK. Obrigado.