什么是有效的Java@WebMethod返回类型?

什么是有效的Java@WebMethod返回类型?,java,web-services,webmethod,Java,Web Services,Webmethod,我正在使用Java编写一个Web服务。现在我有了一个@WebMethod,它应该返回一些数据,我不确定使用什么格式。我已经看到,在其他语言中,@WebMethod返回类型有一定的限制——Java也是这样吗 当我试图返回一个包含XML的DOM文档时,我得到一个错误,说“无法创建JAXBContext”,所以我将它改为只返回一个字符串数组。然而,从该数组中获取内容相当繁琐。有谁有更好的解决方案吗 谢谢 VeganSmarties当我实现JAX-WSWeb服务时,我的所有返回类型都用JAXB注释(@X

我正在使用Java编写一个Web服务。现在我有了一个@WebMethod,它应该返回一些数据,我不确定使用什么格式。我已经看到,在其他语言中,@WebMethod返回类型有一定的限制——Java也是这样吗

当我试图返回一个包含XML的DOM文档时,我得到一个错误,说“无法创建JAXBContext”,所以我将它改为只返回一个字符串数组。然而,从该数组中获取内容相当繁琐。有谁有更好的解决方案吗

谢谢


VeganSmarties

当我实现JAX-WSWeb服务时,我的所有返回类型都用JAXB注释(@XmlElement,…)注释,并且它们也是可序列化的。编辑:这意味着任何类型都无法工作,您必须围绕要返回的结构创建包装器。

谢谢-所以您创建了自己的对象,使其可序列化,对其进行注释,然后返回了它们?因此,并非所有WebMethod返回类型都必须是XML,但它们可以..?JAX-WS是用于XML Web服务的Java API,这意味着输入/输出都是隐藏的XML。然而,afair原语&它们根据包装器+它们的数组自动处理(当您将return转换为String数组时您的情况)!谢谢-这很有道理!:)最后一个问题-当我返回一个字符串[][]数组,如{[a,b],[b,c],[c,d]}时,xml对所有内容都使用标记,所以看起来像:a,b,b等等。。。我如何将标记名更改为更有意义的数据,比如说什么?我不确定是否有元素为基于数组的项指定元素名(但可能有!),因此我建议您阅读JAXB注释(例如,从JavaDoc开始-annotations package:);但您总是可以轻松地创建包装类,指定它的元素名;并对“容器元素”名称使用@XmlElementWrapper。@我刚刚发现WebResult适用于单个字符串,但我也将尝试为数组找到解决方案。再次感谢您的帮助!