Für einen Bestellprozess muss ich in meinem REST Web Service vom Client an den Server eine Liste von Objekten senden bzw. ein eigenes DTO.
Ich habe schon herausgefunden, dass String- oder Integer-Listen per
gesendet werden können. Das funktioniert auch.
Sende ich jedoch eine Liste von eigenen Entitäten (oder eine einzelne Entität) oder will ich mein eigenes (auf beiden Seiten definiertes) DTO senden, so bekomme ich immer den Fehler
.
Woran kann das liegen? Können nur Standard-Typen gesendet werden?
PS: Ich nutze einen SAP Netweaver AS, aber bislang verhielt er sich wie jeder andere auch. Daher glaube ich erst einmal nicht, dass es am Server (oder dessen Version) liegt.
Vielen Dank für eure Hilfe.
Mein Code auf Server-Seite:
Mein Code auf Client-Seite: (die Methode befindet sich in einer Session Bean)
Mit demselben Code (nur die Parameter des
und die Eingabeparameter der Servermethode waren anders) habe ich bisher schon erfolgreich Strings, Integer und String-Listen zum Server gesandt und irgendwas davon zurückgegeben. Nur mit eigenen Typen/Klassen/Entitäten klappt es nicht.
PS: durch loggen habe ich herausbekommen, dass die Server-Methode gar nicht erst aufgrufen wird, der Service bricht vorher schon ab.
Ich habe schon herausgefunden, dass String- oder Integer-Listen per
Code:
@FormParam
Sende ich jedoch eine Liste von eigenen Entitäten (oder eine einzelne Entität) oder will ich mein eigenes (auf beiden Seiten definiertes) DTO senden, so bekomme ich immer den Fehler
Code:
400 - Bad Request
Woran kann das liegen? Können nur Standard-Typen gesendet werden?
PS: Ich nutze einen SAP Netweaver AS, aber bislang verhielt er sich wie jeder andere auch. Daher glaube ich erst einmal nicht, dass es am Server (oder dessen Version) liegt.
Vielen Dank für eure Hilfe.
Mein Code auf Server-Seite:
Java:
@Path("/test")
@POST
@Produces(MediaType.TEXT_XML)
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public String test(
@FormParam("kunde") Kunde kunde) {
return "Der Name des Kunden ist: "+kunde.getVorname()+" "+kunde.getNachname();
}
Mein Code auf Client-Seite: (die Methode befindet sich in einer Session Bean)
Java:
public String test() {
Kunde kunde = new Kunde();
kunde.setNachname("Müller");
kunde.setVorname("Kurt");
Form form = new Form();
form.add("kunde", kunde);
return service
.path("test")
.type(MediaType.APPLICATION_FORM_URLENCODED)
.accept(MediaType.TEXT_XML)
.post(String.class, form);
}
Mit demselben Code (nur die Parameter des
Code:
form.add()
PS: durch loggen habe ich herausbekommen, dass die Server-Methode gar nicht erst aufgrufen wird, der Service bricht vorher schon ab.
Zuletzt bearbeitet: