У меня очень простой класс (документ), , где я храню данные в моей базе данных mongodb.Spring - mongodb - GeoJsonPoint
public class Data {
@Id
public String id;
public String userId;
public GeoJsonPoint coordinate;
public Data() {
}
public Data(String userId, GeoJsonPoint coordinate) {
this.userId = userId;
this.coordinate = coordinate;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public GeoJsonPoint getCoordinate() {
return coordinate;
}
public void setCoordinate(GeoJsonPoint coordinate) {
this.coordinate = coordinate;
}
}
Далее у меня есть этот метод контроллера для сохранения новых данных:
@PostMapping(value = "/data")
public RestResponse add(@RequestBody Data data) {
mongoTemplate.save(data);
List<Data> list = new ArrayList<Data>();
list.add(data);
RestResponse<Data> restResponse = new RestResponse<Data>(true, list.size(), list);
return restResponse;
}
Так что, когда я отправить этот запрос с помощью Почтальон (окна -> стельку):
{
"userId": "anyuserid-100",
}
получает данные сохраняются надлежащим образом, поскольку ответ:
{
"success": true,
"count": 1,
"data": [
{
"id": "586aaa00ba076b129254e2f5",
"userId": "anyuserid-100",
"coordinate": null,
}
]
}
Но когда я хочу сохранить координаты, а также:
{
"userId": "anyuserid-200",
"coordinate": {
"type": "Point",
"coordinates": [-2.5469, 48.5917]
}
}
Response является:
the request sent by the client was syntactically incorrect.
Но почему? я точно перенаправлен на http://docs.spring.io/spring-data/data-mongo/docs/1.9.6.RELEASE/reference/pdf/spring-data-mongodb-reference.pdf
Любой может помочь?
спасибо и приветствуем!
UPDATE:
конфигурации:
@Configuration
@ComponentScan(basePackages = "com.example.app")
@PropertySource({ "classpath:app.properties" })
@Import(MongoConfig.class)
@EnableWebMvc
public class AppConfig extends WebMvcConfigurerAdapter {
@Autowired
private Environment env;
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/backend/views/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
@Bean
public GeoJsonModule geoJsonModule(){
return new GeoJsonModule();
}
}
Не могли бы вы рассказать мне, что вы имеете в виду в деталях? Я читаю документы, но я не уверен, что вы имеете в виду. –
Вы используете Джексон для десерализации/серлизации? Добавьте свою конфигурацию пружины в сообщение. Вам необходимо будет зарегистрировать этот модуль. Это для фронтального контроллера. Я не думаю, что вы найдете это mongo db docs. – Veeram
i обновленный код, можете ли вы обратиться к нему? –