Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaJAX-WS返回字符串数组?_Java_Jax Ws - Fatal编程技术网

使用JavaJAX-WS返回字符串数组?

使用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

我试图创建一个简单的web服务,当调用它时,它应该返回一个字符串数组,但它似乎没有这样做,我也不知道为什么

此Web服务如下所示:

@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将序列转换为与字符串[]不兼容的列表。您有两种变通方法:

  • 将签名更改为与JAXB兼容的内容,即
    List

  • 使用
    XMLJavaTypeAdapter
    表示您希望调整类型-在返回之前将列表转换为数组-请参阅