Ich habe einen Web-Service für die Auftragsverwaltung entwickelt. Dieser Web-Service benötigt viele komplexe Objekte als Eingabeparameter. Ich habe Curl zum Testen benutzt und es funktioniert gut. Jetzt schreibe ich einen Client aber mit Problem, wenn für ArrayList (z. B. die Elemente als ArrayList kommen) Objekte. Es wird als String gesendet. Es scheint die Einschränkung zu sein, die das Client-Framework verwendet, das ich verwende. Ich habe ein oder zwei offene Frameworks ausprobiert, aber sie funktionieren nicht wie erwartet. Es wird großartig sein, wenn Sie einen Rahmen mit einigen Beispielen vorschlagen können.Rest Client-Framework für komplexe Objekte
Unten ist die Probe Curl Anfrage, ich habe einige zusätzliche Parameter entfernt, um es einfach zu halten.
curl -L -v -b agent_cookies.txt -H "Content-Type: application/json" -d "{" Elemente ": {" atg-rest-Klasse-Typ ":" java. util.ArrayList "," atg-Rest-Werte ": [{" atg-rest-class-type ":" com.bean.CommerceItemInfo "," tinSkuNumber ":" 41589367 "," itemNumber ": 280594," color ": 9," size ": 94," salePrice ": 50,00," taxAmount ": 3,5," stateTax ": 0,48," countyTax ": 0,08," währungscode ":" USD "}, {" atg-rest -klasse ":" com.bean.CommerceItemInfo ", " tinSkuNumber ":" 41589375 "," itemNumber ": 280594," color ": 9," size ": 96," salePrice ": 100,00," taxAmount ": 7," stateTax ": 0.96," countyTax ": 0.16," Währungscode ":" USD "}]}, orderInfo: {...}," clientAddress ": {" atg-rest-class-type " : "java.u til.ArrayList "," atg-rest-values ": [{" atg-rest-class-type ":" com.bean.ClientAddress ", \" Vorname \ ": \" John \ ", \" Nachname \ " ": \" Dao \ ", \" Staat \ ":" FL \ ", \" Land \ ": \" US \ ", \" postalCode \ ": \" 33606 \ ", \" Adresse1 \ ": \ "100 S Edison Avenue \", \ "Adresse2 \": \ "Suite D \", \ "Stadt \": \ "Tampa \", \ "AdressTyp \": \ "BEIDE \"}]} , {......}}“ http://localhost:8080/rest/model/com/web/actor/CartActor/testOrder
Danke
Falls Sie "" atg-rest-class-type "deserialisieren wollen:" java.util.ArrayList "," atg-rest-values ": [{" atg-rest-class-type ":" com .bean.CommerceItemInfo "...' in eine 'ArrayList' müssen Sie entweder das seltsame atg-Framework verwenden, das dieses schreckliche Serialisierungsformat erfunden hat, oder eine ganze Menge Code schreiben, der dies tut oder ein korrektes restliches Format verwendet Das versucht nicht, ein Java-Serializer zu sein. –
zapl
Stimmt, dieser ATG Framewrok ist scheiße. Ich habe den atg-Client ausprobiert, aber ich kann keine benutzerdefinierten Beans konvertieren. Kannst du bitte ein Beispiel geben. –
Für was genau? Custom Deserializer mit Jax-Rs? – zapl