有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (1) 个答案

  1. # 1 楼答案

    由于JAX-WS使用JAXB序列化对象,JAXB需要知道marshall或unmarshall的类型名称。在一个独立的环境中,我们可以deal处理这类事情。但是,在处理对象列表时,这会变得更加复杂

    此外,每个数据类型都必须在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;
        }
    }
    

    另一种方法是直接使用SOAP messages,但可以避免这样做