Spring Restful Web Hizmetime JSON girişini kabul etmek için çok zamanım var. Temelde amacım bir JSON'u kabul etmek ve bir zip dosyasını geri göndermektir. Ama ben ilk adımı geçemiyorum. aşağıdakı Spring Restful Web Hizmeti'nde JSON girişini Kabul Etme?
@JsonAutoDetect
public class PassGenerationRequest {
private String serialNumber;
private String upc;
private String campaign;
private String merchant;
public String getSerialNumber() {
return serialNumber;
}
public void setSerialNumber(String serialNumber) {
this.serialNumber = serialNumber;
}
public String getUpc() {
return upc;
}
public void setUpc(String upc) {
this.upc = upc;
}
public String getCampaign() {
return campaign;
}
public void setCampaign(String campaign) {
this.campaign = campaign;
}
public String getMerchant() {
return merchant;
}
public void setMerchant(String merchant) {
this.merchant = merchant;
}
}
yay servlet.xml yapılandırılmış farklı HttpMessageConverters olan aşağıdakı PassGenerationRequest
@Controller
@RequestMapping(value = "/request")
public class PasskitController {
@Autowired
@Qualifier("PassManager")
private PassManager pm;
/*headers = { "Accept:application/json" },
consumes = MediaType.APPLICATION_JSON_VALUE,*/
@RequestMapping(value = "/createPass", method = RequestMethod.POST,
consumes = MediaType.APPLICATION_JSON_VALUE,
produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
public @ResponseBody ByteArrayOutputStream createGiftPass(
@RequestBody PassGenerationRequest request) throws IOException {
System.out.println("in createGiftPass() method");
String success = "Success";
ByteArrayOutputStream baos = new ByteArrayOutputStream();
baos.write(success.getBytes());
return baos;
}
@RequestMapping(value = "/test", method = RequestMethod.GET,
produces = MediaType.TEXT_PLAIN_VALUE)
public @ResponseBody
String test() throws IOException {
System.out.println("in test() method");
return "Success";
}
}
I pojo aşağıdaki girdi JSON eşlemek için gereken kontrol kodu
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jsonMessageConverter" />
<ref bean="byteArrayMessageConverter"/>
<ref bean="stringMessageConverter"/>
</list>
</property>
</bean>
<bean id="jsonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" >
<property name="supportedMediaTypes" value="application/json" />
</bean>
<bean id="byteArrayMessageConverter"
class="org.springframework.http.converter.ByteArrayHttpMessageConverter" >
<property name="supportedMediaTypes" value="application/octet-stream" />
</bean>
<bean id="stringMessageConverter"
class="org.springframework.http.converter.StringHttpMessageConverter" >
<property name="supportedMediaTypes" value="text/plain" />
</bean>
Şu anda alıyorum İçerik türü 'text/plain; charset = UTF-8 'desteklenmiyor istisnası.
ben eklerseniz = { "Kabul: application/json"} başlık yok işleyici isteği "istek/createPass" için bulunan sonra olsun istisna diyerek
kimse bana üzerinde yardım edebilir İşte?
Teşekkürler.
Ne isteğiniz neye benziyor? –
Aslında isteğimi göndermek için Postman uygulamasını kullanıyordum. – user2985202