Java 如何从返回列表的服务中检索值<;对象>;使用jax-ws
我有一个返回列表的服务,这个对象根据不同的场景而变化Java 如何从返回列表的服务中检索值<;对象>;使用jax-ws,java,jaxb,jax-ws,Java,Jaxb,Jax Ws,我有一个返回列表的服务,这个对象根据不同的场景而变化 有人能告诉我jax-ws是否支持这种行为,或者我们是否有其他选择。既然jax-ws使用JAXB序列化对象,JAXB需要知道marshall或unmarshall的类型名称。在一个独立的环境中,可以使用这种东西。但是,在处理对象列表时,这会变得更加复杂 此外,每个数据类型都必须在WSDL中定义。服务客户端必须能够将响应XML转换为所需的数据类型 如果希望返回不同类型的不同列表,最简单的方法是为响应使用包装器。e、 g public class
有人能告诉我jax-ws是否支持这种行为,或者我们是否有其他选择。既然jax-ws使用JAXB序列化对象,JAXB需要知道marshall或unmarshall的类型名称。在一个独立的环境中,可以使用这种东西。但是,在处理对象列表时,这会变得更加复杂 此外,每个数据类型都必须在WSDL中定义。服务客户端必须能够将响应XML转换为所需的数据类型 如果希望返回不同类型的不同列表,最简单的方法是为响应使用包装器。e、 g
public class ResponseWrapper {
private List<Audio> audios;
private List<Video> videos;
// setters and getters
}
@WebService
public class MediaStore {
@Inject
AudioService audioService;
@Inject
VideoService videoService;
@WebMethod
public ResponseWrapper getCollections(String artistId) {
ResponseWrapper response = new ResponseWrapper();
response.setAudios(audioService.getAudios(artistId));
response.setAudios(videoService.getVideos(artistId));
return response;
}
}
公共类响应包装器{
私人列表,但您可以避免这样做