0

我是 Java Web 服务编程的新手,这个问题可能看起来很基础。但我找不到问题。

我使用 Eclipse 为 Tomcat 6.0.37 开发了一个 Apache CXF(v 2.7.6) web 服务。基本上,我创建了一个动态 web 项目,创建了 webservice 类并从该类创建了 webservice(eclipse 生成了其余的,包括 wsdl 和 xsd)。一切正常,除非我尝试返回字符串数组。这是我的方法

@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>

这是返回的消息

信息:出站消息

ID:34 编码:UTF-8 内容类型:text/xml 标头:{} 负载:

如您所见,甚至没有返回部分。知道有什么问题吗?

我在这个项目中使用 Windows 7、Eclipse Kepler 和 JDK6。

4

1 回答 1

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"});

谢谢

于 2013-07-29T11:16:10.627 回答