我正在使用jerseyapi实现 RESTful 服务,我知道我需要注册自定义 xmlWriter 和 xmlReader。客户端代码实现了 MessageBodyWriter,我需要知道如何在服务器端注册它,因为我正在获取MessageBodyProviderNotFoundException媒体类型应用程序/xml。
MessageBodyWriter 代码
public class SendDocumentsServiceRequestXMLWriter extends BaseMessageBodyWriter implements MessageBodyWriter<SendDocumentsRequest> {
public boolean isWriteable( Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType ) {
return type == SendDocumentsRequest.class && !mediaType.isWildcardType()
&& !mediaType.isWildcardSubtype() && mediaType.isCompatible( MediaType.valueOf( "application/xml" ) );
}
public long getSize( SendDocumentsRequest t, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType ) {
return 0;
}
public void writeTo( SendDocumentsRequest t, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType,
MultivaluedMap<String, Object> httpHeaders, OutputStream entityStream ) throws IOException, WebApplicationException {
try {
ESignatureClientJAXBContextFactory.getMarshaller( SendDocumentsRequest.class ).marshal( t, entityStream );
} catch (Exception e) {
throw new ESignatureClientException( e );
}
}
Run Code Online (Sandbox Code Playgroud)
}
我如何注册这个课程,以便 Jersey 选择它?
谢谢
与 Writer 或 Reader 一起或取决于 Writer 或 Reader放置@Provider您的实现类。@Produces@Consumes
这是一个例子: http: //memorynotfound.com/jax-rs-messagebodywriter/
| 归档时间: |
|
| 查看次数: |
8758 次 |
| 最近记录: |