Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Saving geoinformation for a scientific object #25

Open
Dryocopus opened this issue Jul 8, 2021 · 0 comments
Open

Saving geoinformation for a scientific object #25

Dryocopus opened this issue Jul 8, 2021 · 0 comments

Comments

@Dryocopus
Copy link

Not something I expect to need for the very short term, but just to let you know:

In the Swagger documentation for POST core/scientific_objects, there is an example with the following structure:

{
  "uri": "string",
  "rdf_type": "vocabulary:Plot",
  "name": "Plot 12",
  "experiment": "string",
  "relations": [
    {
      "property": "string",
      "value": "string"
    }
  ],
  "geometry": "{'type':'Polygon','coordinates':[[[3.97167246,43.61328981], [3.97171243,43.61332417],[3.9717427,43.61330558],[3.97170272,43.61327122], [3.97167246,43.61328981],[3.97167246,43.61328981]]]}"
}

If I try to post that as is, it gives an error message:

{
  "metadata": {
    "pagination": {
      "pageSize": 0,
      "currentPage": 0,
      "totalCount": 0,
      "totalPages": 0
    },
    "status": [],
    "datafiles": []
  },
  "result": {
    "title": "Unable to parse JSON input",
    "message": "Missing type id when trying to resolve subtype of [simple type, class org.geojson.GeoJsonObject]: missing type id property 'type' (for POJO property 'geometry')\n at [Source: (org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$UnCloseableInputStream); line: 12, column: 15] (through reference chain: org.opensilex.core.scientificObject.api.ScientificObjectCreationDTO[\"geometry\"])",
    "stack": [],
    "fullstack": [
      "com.fasterxml.jackson.databind.exc.InvalidTypeIdException.from(InvalidTypeIdException.java:43)",
      "com.fasterxml.jackson.databind.DeserializationContext.missingTypeIdException(DeserializationContext.java:1945)",
      "com.fasterxml.jackson.databind.DeserializationContext.handleMissingTypeId(DeserializationContext.java:1458)",
      "com.fasterxml.jackson.databind.jsontype.impl.TypeDeserializerBase._handleMissingTypeId(TypeDeserializerBase.java:307)",
      "com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer._deserializeTypedUsingDefaultImpl(AsPropertyTypeDeserializer.java:174)",
      "com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer.deserializeTypedFromObject(AsPropertyTypeDeserializer.java:94)",
      "com.fasterxml.jackson.databind.deser.AbstractDeserializer.deserializeWithType(AbstractDeserializer.java:263)",
      "com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:138)",
      "com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:324)",
      "com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:187)",
      "com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:322)",
      "com.fasterxml.jackson.databind.ObjectReader._bind(ObjectReader.java:2007)",
      "com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1174)",
      "org.glassfish.jersey.jackson.internal.jackson.jaxrs.base.ProviderBase.readFrom(ProviderBase.java:837)",
      "org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.invokeReadFrom(ReaderInterceptorExecutor.java:233)",
      "org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.aroundReadFrom(ReaderInterceptorExecutor.java:212)",
      "org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:132)",
      "org.glassfish.jersey.spi.ContentEncoder.aroundReadFrom(ContentEncoder.java:102)",
      "org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:132)",
      "org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundReadFrom(MappableExceptionWrapperInterceptor.java:49)",
      "org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:132)",
      "org.glassfish.jersey.message.internal.MessageBodyFactory.readFrom(MessageBodyFactory.java:1072)",
      "org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:885)",
      "org.glassfish.jersey.server.ContainerRequest.readEntity(ContainerRequest.java:274)",
      "org.glassfish.jersey.server.internal.inject.EntityParamValueParamProvider$EntityValueSupplier.apply(EntityParamValueParamProvider.java:73)",
      "org.glassfish.jersey.server.internal.inject.EntityParamValueParamProvider$EntityValueSupplier.apply(EntityParamValueParamProvider.java:56)",
      "org.glassfish.jersey.server.spi.internal.ParamValueFactoryWithSource.apply(ParamValueFactoryWithSource.java:50)",
      "org.glassfish.jersey.server.spi.internal.ParameterValueHelper.getParameterValues(ParameterValueHelper.java:68)",
      "org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$AbstractMethodParamInvoker.getParamValues(JavaResourceMethodDispatcherProvider.java:109)",
      "org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:176)",
      "org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79)",
      "org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:469)",
      "org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:391)",
      "org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:80)",
      "org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:255)",
      "org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)",
      "org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)",
      "org.glassfish.jersey.internal.Errors.process(Errors.java:292)",
      "org.glassfish.jersey.internal.Errors.process(Errors.java:274)",
      "org.glassfish.jersey.internal.Errors.process(Errors.java:244)",
      "org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)",
      "org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:234)",
      "org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:680)",
      "org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394)",
      "org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)",
      "org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:366)",
      "org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:319)",
      "org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)",
      "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)",
      "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)",
      "org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)",
      "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)",
      "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)",
      "org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)",
      "org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)",
      "org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)",
      "org.apache.catalina.valves.StuckThreadDetectionValve.invoke(StuckThreadDetectionValve.java:206)",
      "org.apache.catalina.valves.rewrite.RewriteValve.invoke(RewriteValve.java:295)",
      "org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)",
      "org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)",
      "org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)",
      "org.apache.catalina.valves.rewrite.RewriteValve.invoke(RewriteValve.java:552)",
      "org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)",
      "org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)",
      "org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)",
      "org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)",
      "org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)",
      "org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)",
      "org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)",
      "org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)",
      "org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)",
      "java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)",
      "java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)",
      "org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)",
      "java.base/java.lang.Thread.run(Thread.java:829)"
    ]
  }
} 

Not sure how the nested quotes are handled exactly. Perhaps that goes wrong.

It might be related to this Error in the editor.swagger.io interface:
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant