我是java web服务编程的新手,这个问题可能看起来非常基本。但我找不到问题。
我使用Eclipse为Tomcat 6.0.37开发了Apache CXF(v 2.7.6)Web服务。 基本上,我创建了一个动态Web项目,创建了webservice类并从该类创建了webservice(eclipse生成了其余的,包括wsdl和xsd)。一切正常,除非我尝试返回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>
这是返回的消息
正如你所看到的,甚至没有返回部分。知道什么可能是错的吗?
我在这个项目中使用Windows 7,Eclipse Kepler和JDK6。
答案 0 :(得分:0)
无论我记得什么,它都行不通,因为你无法在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"});
由于