所有
这是我的第一个问题,如果我做错了,请原谅。我们走了。
尝试通过RestFul服务发送PostGIS对象(实际上是PGgeometry)时遇到问题。
我要发送的课程是GPSMessageFormat:
@XmlRootElement(name="position")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType( propOrder = {
"latitude",
"longitude",
"position",
} )
public class GPSMessageFormat implements Serializable{
private static final long serialVersionUID = 4178516023632486216L;
public Double latitude;
public Double longitude;
public PointJaxRS position;
}
我创建了自己的类来实现PGgeometry,以便添加所需的标签:
@XmlAccessorType(XmlAccessType.FIELD)
public class PointJaxRS extends PGgeometry {
private static final long serialVersionUID = 4624155439994995423L;
public PointJaxRS(){
super();
};
}
这是达到的例外情况:
org.postgis.Geometry does not have a no-arg default constructor.
this problem is related to the following location:
at org.postgis.Geometry
at org.postgis.Point
at es.datatype.PointJaxRS
at public es.datatype.PointJaxRS es.datatype.GPSMessageFormat.position
at es.datatype.GPSMessageFormat
Class has two properties of the same name "m"
this problem is related to the following location:
at public double org.postgis.Point.getM()
at org.postgis.Point
at es.datatype.PointJaxRS
at public es.datatype.PointJaxRS es.datatype.GPSMessageFormat.position
at es.datatype.GPSMessageFormat
this problem is related to the following location:
at public double org.postgis.Point.m
at org.postgis.Point
at es.datatype.PointJaxRS
at public es.datatype.PointJaxRS es.datatype.GPSMessageFormat.position
at es.datatype.GPSMessageFormat
[...] **Other similar errors with all the other fields from PGgeometry**
我认为添加 @XmlAccessorType(XmlAccessType.FIELD) 标记足以只识别类中的属性作为json文件中的字段,但似乎这不适用于继承的属性。另外,我需要Geometry有一个no-arg默认构造函数......
我不能将它们作为String发送,因为它们将被Openlayers接收,因此它需要能够读取PGgeometry才能在地图中绘制点。
所以问题是:如何通过休息服务以JSON格式发送PostGIS对象?