我习惯于使用生成 wsdl 文件的 jax-ws,然后可以使用 maven 插件基于此 wsdl 文件及其 xsd 生成客户端。使用这个客户端一点也不麻烦,而且你不必真正考虑后台发生的事情,比如编组、http 传输等。
我目前正在使用 jaxb 来解组对象的 jax-rs 项目。那里的一种方法返回一个字符串列表,但似乎jaxb 不知道如何编组 this,这有点令人惊讶,因为它确实知道如何编组实体列表(例如,客户)。
另外,我自己为 jax-rs 服务编写了一个客户端,处理 http 响应和使用 jaxb 对有效负载进行解组。使用 jaxb 编组和解组确实很麻烦,因为它不能自动编组或解组添加到其上下文中的实体列表,更不用说字符串列表。
我想知道是否有一些巧妙的方法可以使用宁静的网络服务免费获得所有这些?这必须非常轻量级,并且客户端必须易于分发。
谢谢!鲁纳尔
使用 jaxrs 和 jaxb 不起作用的服务方法:
@GET
@Path("/{customerId}")
@Produces(MediaType.APPLICATION_XML)
public List<String> isCustomerLocked(@PathParam("customerId") Long customerId) {
}
尝试编组/解组文本有效负载的客户端代码。添加到 jaxbcontext 的类未显示:
javax.xml.bind.Marshaller marshaller = jaxbContext.createMarshaller();
marshaller.marshal(obj, stringwriter)
javax.xml.bind.Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
unmarshaller.unmarshal(inputstream)