Мой использованный стек
- Пружинная загрузка 1.5.6 выпуска
- AJAX JQuery 3.3.1
Моя цель
Я пытаюсь распечатать некоторые данные в отчете jasper, поэтому я создал контроллер отдыха, у меня появилась идея отправлять данные json из внешнего интерфейса и анализировать их благодаря Jackson api в Списокзатем pojo, используя JRDataBean для обработки моего отчета
Мой код
При нажатии кнопки печати я отправляю этот массив json с помощью ajax, который я получил из консоли chrome:сделав его глобальной переменной, затем используя копию (атрик, который я гуглил, чтобы получить переменное содержимое в виде строки)
.
[ {
"codeInterne": 45,
"clientName": "TalcorpDZ",
"clientPhone": "+213778217469",
"codeExterne": "CLI201801",
"email": "talcorpdz@gmail.com",
"clientType": 0,
"clientEtat": 1,
"identifiant": "TalcorpDZ",
"contacts": [
{
"nom": "Taleb",
"prenom": "Mohammed Housseyn",
"telephonePortable": "04330256699",
"email": null
}
],
"adresses": [
{
"adress": "Batiments des enseignants Mohammed Khemisti",
"ville": "Maghnia"
}
]
},
{
"codeInterne": 64,
"clientName": "lkjhgf",
"clientPhone": "+213778217469",
"codeExterne": "dfghjk",
"email": "talcorpdz@gmail.com",
"clientType": 1,
"clientEtat": 1,
"identifiant": "lkjhgf",
"contacts": [
{
"nom": "Taleb",
"prenom": "Mohammed",
"telephonePortable": "02354649",
"email": "talcorpdz@gmail.com"
}
],
"adresses": [
{
"adress": "Batiments des enseignants Mohammed Khemist",
"ville": "Maghnia"
}
]
}
]
- и вот часть, где я делаю запрос на публикацию
.
$(document).on('click', '#menu0-func1-menu0-func1', function(){
console.log(printData);
var settings = {
"async" : true,
"crossDomain" : true,
"url" : "http://"+document.location.host+"/facturation/print/client",
"method" : "POST",
"headers" : {
"cache-control" : "no-cache",
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
"processData" : false,
"contentType" : "application/json",
"dataType" : "json",
"data" : printData
}
$.ajax(settings).done(function(response) {
console.log(response);
});
});
сообщение хорошо получено моим контроллером, который закодирован следующим образом:
@RestController
@RequestMapping(PrintController.API)
public class PrintController {
public static final String API="print";
@PostMapping("client")
public void export(@RequestBody List<ClientJsonDto> datas,HttpServletResponse response){
System.out.println(datas);
// processing the print mechanisme
}
}
наконец, вот мой ClientJsonDto.java
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"codeInterne",
"clientName",
"clientPhone",
"codeExterne",
"email",
"clientType",
"clientEtat",
"identifiant",
"contacts",
"adresses"
})
public class ClientJsonDto {
@JsonProperty("codeInterne")
private Integer codeInterne;
@JsonProperty("clientName")
private String clientName;
@JsonProperty("clientPhone")
private String clientPhone;
@JsonProperty("codeExterne")
private String codeExterne;
@JsonProperty("email")
private String email;
@JsonProperty("clientType")
private Integer clientType;
@JsonProperty("clientEtat")
private Integer clientEtat;
@JsonProperty("identifiant")
private String identifiant;
@JsonProperty("contacts")
private List<Contact> contacts = null;
@JsonProperty("adresses")
private List<Adress> adresses = null;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
// getters, setters
}
adress.java
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"adress",
"ville"
})
public class Adress {
@JsonProperty("adress")
private String adress;
@JsonProperty("ville")
private String ville;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
//getters, setters
}
contact.java
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"nom",
"prenom",
"telephonePortable",
"email"
})
public class Contact {
@JsonProperty("nom")
private String nom;
@JsonProperty("prenom")
private String prenom;
@JsonProperty("telephonePortable")
private String telephonePortable;
@JsonProperty("email")
private String email;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
//getters setters
}
Исключение, с которым я сталкиваюсь:
2018-11-18 15: 12: 40.255 WARN 1768 --- [nio-8082-exec-9],«);вложенное исключение: com.fasterxml.jackson.core.JsonParseException: нераспознанный токен «объект»: ожидался («истина», «ложь» или «ноль») в [Source: java.io.PushbackInputStream@1df244f9;строка: 1, столбец: 9]
что я могу сделать, чтобы увидеть, что мой контроллер покоя получает в качестве тела запроса до того, как этот Джексон попытается маршалировать?
что я могу сделать, чтобыисправить это исключение?