java.util.MissingFormatArgumentException: Format specifier '%s'
Ich bin offensichtlich etwas fehlt, aber ich weiß nicht, was...
Es ist dumm, wie viel kleine Dinge machen dich verrückt mehr als erschweren lieben...
Dies ist die controller-code:
@RequestMapping(value = "/getClienteNomeCognome", method = RequestMethod.GET)
public ResponseEntity<List<Object>> getClienteNomeCognome(@RequestParam("nomeCliente") String nomeCliente,
@RequestParam("cognomeCliente") String cognomeCliente) {
List<Object> listaRisultati = new ArrayList<Object>();
try {
listaRisultati = serviziDocumentaleService.getClienteNomeCognome(nomeCliente, cognomeCliente);
} catch (Exception e) {
LOGGER.warn(String.format("Errore inatteso sulla chiamata del servizio: [%s]", e.toString()));
}
LOGGER.info(String.format("Avvio ricerca cliente con nome: %s, cognome: %s)", nomeCliente, cognomeCliente));
return new ResponseEntity<List<Object>>(listaRisultati, HttpStatus.OK);
}
Und das ist getClienteNomeCognome:
public List<Object> getClienteNomeCognome(String nome, String cognome) throws Exception {
try {
final RestTemplate restTemplate = new RestTemplate();
final String url = "somelink?cognome=%25"+cognome+"%25&nome=%25"+nome+"%25";
final ResponseEntity<List> response = (ResponseEntity<List>) restTemplate.getForObject(url, List.class);
if (response.getBody() != null && response.getBody().toString().contains("<error>")) {
throw new Exception(String.format(
"La risposta del servizio contiene degli errori: %s",
response.getBody()));
} else {
LOGGER.debug("Fine chiamata al servizio di ricerca cliente");
return response.getBody();
}
} catch (HttpClientErrorException hcee) {
throw new Exception(String.format(
"Errore durante la chiamata. Error: %s",
hcee.getMessage()));
} catch (Exception e) {
throw new Exception(String.format(
"Errore generico durante la chiamata al servizio. Error: %s"
+ e.getMessage()));
}
}
- Disclaimer: Habe es nicht ausprobiert. Dennoch, das problem könnte sein
[%s]
Teil und vor allem die eckigen Klammern. Versuchen Sie, zu entfernen oder zu entziehen. - ziemlich sicher, dass Ihr logger unterstützt das format als gut, und Sie brauchen nicht zu verwenden
String.format
. E. g.LOGGER.warn("Errore inatteso sulla chiamata del servizio: [{}]", e);
Ihre Fehler btw beschwert sich, dass es ein %s, ohne etwas an Ihre Stelle setzen - dein code lief einwandfrei auf meinem Rechner. So kann der Fehler kommt von der Methode getClienteNomeCognome. Darüber hinaus LOGGER haben, seinen Weg zu format-String wird ohne die Verwendung von Zeichenfolgen.format. Zum Beispiel:
LOGGER.info("Test {}", nomeClient);
- Können Sie nach dem vollständigen stack-trace, so, dass wir besser schauen, wo ist das problem?
Du musst angemeldet sein, um einen Kommentar abzugeben.
sollte
Kann ich nicht 100% sicher das Problem, da fehlt code, so kann ich emulieren es von hier aus. Aber es sieht so aus:
hat eine extra
)
nach der letzten%s
, also vielleicht einfach nicht Lesen es richtig? Es sei denn, dass ist nur ein Fehler beim kopieren und einfügen den code hier.Lassen Sie uns wissen, ob das funktioniert.