You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@olingo.apache.org by Leggio Mario <ma...@telespazio.com> on 2020/04/29 11:06:58 UTC

Geography

Dear all,

I'm using olingo 4.7.1 and I have a Geography property in my entity.


I created a new edm.geo.Geospatial object as:

     Geospatial geospatial = new Polygon(Dimension.GEOGRAPHY, SRID.valueOf("4326"), ..., ...);

If I try to put it into a property defined as:

     new CsdlProperty().setName(F_GEO).setType(EdmPrimitiveTypeKind.GeographyPolygon.getFullQualifiedName()).setNullable(true)

The above code works perfectly when I retrieve the entity.


But If I try to put my geometry into a property defined as generic geography like:

     new CsdlProperty().setName(F_GEO).setType(EdmPrimitiveTypeKind.Geography.getFullQualifiedName()).setNullable(true)

I have an error when serializer tries to convert the object to a string... why?

ERROR - Wrong value for property!
Wrong value for property!
    at org.apache.olingo.server.core.serializer.xml.ODataXmlSerializer.writePropertyValue(ODataXmlSerializer.java:864)
    at org.apache.olingo.server.core.serializer.xml.ODataXmlSerializer.writeProperty(ODataXmlSerializer.java:798)
    at org.apache.olingo.server.core.serializer.xml.ODataXmlSerializer.writeProperties(ODataXmlSerializer.java:639)
    at org.apache.olingo.server.core.serializer.xml.ODataXmlSerializer.writeEntity(ODataXmlSerializer.java:526)
    at org.apache.olingo.server.core.serializer.xml.ODataXmlSerializer.entity(ODataXmlSerializer.java:364)
    at com.telespazio.esa.lta.odata.LtaEntityProcessor.readEntity(LtaEntityProcessor.java:368)
    at org.apache.olingo.server.core.ODataDispatcher.handleSingleEntityDispatching(ODataDispatcher.java:596)
    at org.apache.olingo.server.core.ODataDispatcher.handleEntityDispatching(ODataDispatcher.java:513)
    at org.apache.olingo.server.core.ODataDispatcher.handleResourceDispatching(ODataDispatcher.java:152)
    at org.apache.olingo.server.core.ODataDispatcher.dispatch(ODataDispatcher.java:118)
    at org.apache.olingo.server.core.ODataHandlerImpl.processInternal(ODataHandlerImpl.java:164)
    at org.apache.olingo.server.core.ODataHandlerImpl.process(ODataHandlerImpl.java:85)
    at org.apache.olingo.server.core.ODataHttpHandlerImpl.process(ODataHttpHandlerImpl.java:74)
    at org.apache.olingo.server.core.ODataHttpHandlerImpl.process(ODataHttpHandlerImpl.java:88)
    at com.telespazio.esa.lta.ODataServlet.service(ODataServlet.java:58)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    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:53)
    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:202)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:643)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1579)
    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)
Caused by: org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException: Not implemented!
    at org.apache.olingo.commons.core.edm.primitivetype.EdmGeography.internalValueToString(EdmGeography.java:47)
    at org.apache.olingo.commons.core.edm.primitivetype.AbstractPrimitiveType.valueToString(AbstractPrimitiveType.java:86)
    at org.apache.olingo.server.core.serializer.xml.ODataXmlSerializer.writePrimitiveValue(ODataXmlSerializer.java:992)
    at org.apache.olingo.server.core.serializer.xml.ODataXmlSerializer.writePrimitive(ODataXmlSerializer.java:972)
    at org.apache.olingo.server.core.serializer.xml.ODataXmlSerializer.writePropertyValue(ODataXmlSerializer.java:843)
    ... 37 more



I need to put different geometries int my F_GEO property (It could be a Polygon or a LineString or a MultiPoint and so on...)

Reading documentation, it seems that EdmPrimitiveTypeKind.Geography should be used for all geometry types, isn't it?

Where am I going wrong? Is there a workaround?

I'm looking forward to reading your reply

Regards

           Mario

[Telespazio S.p.A.]

Mario Leggio
LoB Satellite Systems and Operations
System and Ground Segment Engineering

Via Tiburtina, 965 - 00156 Rome - Italy
Ph: +39 06 4079 3072 | Fax: +39 06 4099-8286
mario.leggio@telespazio.com
telespazio.com<http://www.telespazio.com>


-WARNING: This message contains confidential and/or proprietary information which may be subject to privilege or immunity and which is intended for the use of its addressee only.
Should you receive this message in error, you are kindly requested to inform the sender and to definitively remove it from any paper or electronic format.
Any other use of this e-mail is strictly forbidden. Thank you in advance for your cooperation.

Please consider the environment before printing this e-mail.