Java apachecxfweb服务没有';返回字符串数组
我是java web服务编程的新手,这个问题可能看起来很基本。但我找不到问题所在 我已经使用Eclipse为Tomcat6.0.37开发了ApacheCXF(v2.7.6)Web服务。 基本上,我创建了一个动态web项目,创建了webservice类,并从该类创建了webservice(eclipse生成了其余部分,包括wsdl和xsd)。除了我尝试返回字符串数组时,所有操作都正常。 这是我的方法Java apachecxfweb服务没有';返回字符串数组,java,web-services,soap,cxf,Java,Web Services,Soap,Cxf,我是java web服务编程的新手,这个问题可能看起来很基本。但我找不到问题所在 我已经使用Eclipse为Tomcat6.0.37开发了ApacheCXF(v2.7.6)Web服务。 基本上,我创建了一个动态web项目,创建了webservice类,并从该类创建了webservice(eclipse生成了其余部分,包括wsdl和xsd)。除了我尝试返回字符串数组时,所有操作都正常。 这是我的方法 @WebMethod(action="getFriends") public String
@WebMethod(action="getFriends")
public String[] getFriends(String u, String p){
return new String[] {"item 1","item 2","item 3"};
}
响应类型定义
<xs:complexType name="getFriendsResponse">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="return" type="xs:string"/>
</xs:sequence>
</xs:complexType>
这是返回的消息
信息:出站消息
身份证号码:34
编码:UTF-8
内容类型:text/xml
标题:{}
有效载荷:
正如您所看到的,甚至没有返回部件。你知道会出什么问题吗
我在这个项目中使用了Windows7、EclipseKepler和JDK6。不管我记得什么,它都不起作用,因为您无法在HTTP响应中将数组解析为纯文本 试试这两种方法- 1)将方法的返回类型更改为String,然后返回如下字符串
return Arrays.toString(new String[] {"item 1","item 2","item 3"});
2)您可以更改列表的返回类型并返回如下列表-
return Arrays.asList(new String[] {"item 1","item 2","item 3"});
谢谢你。谢谢你的回复。我还考虑将数组转换为字符串,然后在客户端再次转换为数组。但奇怪的是,在复杂类型上,Eclipse在生成Web服务时显示错误。但对于字符串[],它生成时没有任何错误。现在我将使用这个解决方案,谢谢。您所说的“Eclipse在生成Web服务时显示错误”是什么错误?如果以上回答了您的问题,请将其标记为已回答,以便帮助其他有相同问题的访问者。-谢谢