【问题标题】:WSDL Web Service for desktop application用于桌面应用程序的 WSDL Web 服务
【发布时间】:2016-11-12 14:15:21
【问题描述】:

我正在开发一个桌面应用程序,用户输入一个单词,然后显示其定义。为此,我正在使用 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”

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

编辑:

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

这是创建列表并输出的代码:

 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[]”

我该如何解决这个问题?

【问题讨论】:

    标签: java web-services wsdl netbeans-8


    【解决方案1】:

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

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

    由于我不了解您框架的内部结构,因此无法提供更多建议。

    【讨论】:

    • 我试过那条线,但还是不行。您想了解哪些内部信息?
    • 我假设 WordDefinition 类有一些可以访问的成员。什么不起作用?
    • 这里是一个编辑:我注意到方法定义返回定义列表。而我只输出一个字符串。所以我需要输出整个列表。但我不知道该怎么做。
    • 也许通过遍历列表?
    • 如果我不知道 WordDefintion 类的真正含义,我该如何解决您的问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    • 1970-01-01
    • 1970-01-01
    • 2021-01-02
    • 1970-01-01
    • 2011-01-04
    • 2012-10-09
    相关资源
    最近更新 更多