使用JavaJAX-WS返回字符串数组?
我试图创建一个简单的web服务,当调用它时,它应该返回一个字符串数组,但它似乎没有这样做,我也不知道为什么 此Web服务如下所示:使用JavaJAX-WS返回字符串数组?,java,jax-ws,Java,Jax Ws,我试图创建一个简单的web服务,当调用它时,它应该返回一个字符串数组,但它似乎没有这样做,我也不知道为什么 此Web服务如下所示: @WebService public String[] getData(String testParam) { String[] testArray= null; ....//DOES SOMETHING TO TEST PARAM//..... testArray= longtestString.split("-"); retu
@WebService
public String[] getData(String testParam)
{
String[] testArray= null;
....//DOES SOMETHING TO TEST PARAM//.....
testArray= longtestString.split("-");
return testArray;
}
现在,我创建了一个客户端,该客户端尝试调用此函数并接收一个字符串数组,该客户端的代码为:
myjaxpackage.GetDataService service = new myjaxpackage.GetDataService();
myjaxpackage.GetData port = service.getGetDataPort();
String testParameter= "this-is-a-test-string";
String[] result = port.getData(testParameter); //Incompatible Types???
但是ide(Netbeans)给了我一个错误,指出它们是不兼容的类型:
incompatible types
required: java.lang.String[]
found: java.util.List<java.lang.String>
不兼容类型
必需:java.lang.String[]
找到:java.util.List
有人知道为什么这段代码不正确吗?函数应该返回一个字符串数组,它正在被调用并输入其中,所以我看不出它们怎么会不兼容
感谢您在这方面提供的帮助。客户端显示的类型不一定与服务器相同。这两种语言甚至不必是同一种编程语言。所有这些都转换为XML和XML,每一方都可以自由地将其本机结构转换为XML或转换为XML。这里使用的默认绑定是JAXB-序列的默认映射是列表,因此在解组时,JAXB将序列转换为与字符串[]不兼容的列表。您有两种变通方法:
List
XMLJavaTypeAdapter
表示您希望调整类型-在返回之前将列表转换为数组-请参阅