我最近实现了一个Jersey JAX-RS Rest服务。我创建了一个JIBX提供程序,允许在XML和Java类型之间进行解组和编组。我还想通过在URL路径中指定版本来对我的服务进行版本控制。版本控制将包括用于编组和解组Java类型的消息绑定的版本。
因此,有必要将版本传递给自定义JIBX提供程序,并因此包含版本的URL路径。然而,Provider接口(MessageBodyWriter和MessageBodyReader)在其接口方法中不提供URI路径。
以下是MessageBodyWriter接口的writeTo()方法的方法签名:
因此,有必要将版本传递给自定义JIBX提供程序,并因此包含版本的URL路径。然而,Provider接口(MessageBodyWriter和MessageBodyReader)在其接口方法中不提供URI路径。
以下是MessageBodyWriter接口的writeTo()方法的方法签名:
writeTo(Object, Type, Annotation[], MediaType, MultivaluedMap, OutputStream)
这个方法的参数中没有包含路径uri,因此自定义jibx提供者无法知道应该使用哪个消息绑定版本来编组Java类型。有什么解决办法吗?