0
我有一个使用Spring引导的休息应用程序构建。 api请求对象是一个包含String和ASN1OctetString的自定义对象。所以我写了一个消息转换器的自定义实现。MessageConverter for Spring引导REST应用程序不工作的自定义实现
但iam无法将inputStream转换为包含String和ASN1OctetString的customVO对象。 我如何将输入流转换为customVo对象?
我试过使用ObjectInput ois = new ObjectInputStream(is);
,但它给出了一个错误,如标题无效。 请让我知道我可以如何解决这个问题。
下面给出了代码的代码。 应用程序有一个控制器,如下: -
@RequestMapping(method = RequestMethod.POST, value = "/MyApp/postMessage", produces = "application/json;charset=UTF-8",consumes="ASN1OctetString/bytes;charset=UTF-8")
public DeferredResult<MyCustomVO> process(@Valid @RequestBody MyCustomVO myCustomVO, HttpServletRequest request){
//service code
}
请求Bean如下: -
import com.unboundid.asn1.ASN1OctetString;
public class MyCustomVO {
protected String actionDesc;
protected ASN1OctetString transId;
//setter getter methods
}
用于消息转换器的自定义实现: -
public class MyCustomVOConverter extends AbstractHttpMessageConverter<MyCustomVO> {
public MyCustomVOConverter() {
super();
}
public MyCustomVOConverter(org.springframework.http.MediaType supportedMediaType) {
super(supportedMediaType);
}
public MyCustomVOConverter(MediaType... supportedMediaTypes) {
super(supportedMediaTypes);
}
@Override
protected boolean supports(Class<?> clazz) {
return MyCustomVO.class.equals(clazz);
}
@Override
protected MyCustomVO readInternal(Class<? extends MyCustomVO> clazz, HttpInputMessage httpInputMessage) throws IOException, HttpMessageNotReadableException {
MyCustomVO MyCustomVORequest= new MyCustomVO();
InputStream is= httpInputMessage.getBody();
**//Need to convert the stream to customVO object**
}
@Override
protected void writeInternal(MyCustomVO MyCustomVOResp, HttpOutputMessage httpOutputMessage) throws IOException, HttpMessageNotWritableException {
}
}