用于桌面应用程序的WSDL Web服务

时间:2016-11-12 14:15:22

标签: java web-services wsdl netbeans-8

我正在使用桌面应用程序,用户输入一个单词,然后显示其定义。为此,我使用的是Web服务:DictService。 我的代码运行正常,我唯一的问题是它不返回定义。

这是我的代码:

“jTextField1”是用户写单词的地方。

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    String str = jTextField1.getText();
    System.out.println(define(str));
}        

方法定义是:

private static WordDefinition define(java.lang.String word) {
    com.aonaware.services.webservices.DictService service = new com.aonaware.services.webservices.DictService();
    com.aonaware.services.webservices.DictServiceSoap port = service.getDictServiceSoap();
    return port.define(word);
}

例如,当我输入单词“test”时,输出为:“com.aonaware.services.webservices.WordDefinition@f48725b”

我真的不知道如何解决这个问题,非常感谢任何帮助。谢谢。

编辑:

该方法输出定义列表,而i只输出一个字符串。 所以我创建了一个列表来存储所有定义。我迭代它输出它们。

以下是创建列表并输出它的代码:

 String str = jTextField1.getText();

    List<WordDefinition> definitions = new ArrayList<WordDefinition>(Arrays.asList(define(str)));
    for (int i=0; i< definitions.size(); i++){
        System.out.println(Arrays.deepToString(definitions.get(i))); //i get an error here
    }

现在我得到的错误是:“不兼容的类型:WordDefinition无法转换为Object []”

我该如何解决?

1 个答案:

答案 0 :(得分:0)

类WordDefinition显然没有一个很好的toString()方法。您必须明确访问返回值的成员:

System.out.println(define(str).getSomeValue());

由于我不知道你的框架的内部,我不能给出更多的建议。