【问题标题】:Final statement for try clausetry 子句的最终语句
【发布时间】:2017-01-12 16:04:21
【问题描述】:

我正在尝试使用 Eclipse 创建一个调用以下 Web 服务并自动生成代理的客户端;所有这些都像魅力一样:

http://ec.europa.eu/taxation_customs/dds2/eos/validation/services/validation?wsdl

但是之后我尝试调用代理方法 validateEORI,它接受包含一个或多个 EORI 编号的字符串数组(例如,这些是在欧洲用于税收目的的公司标识符)。我只使用一个包含单个条目的数组,因为我想稍后从文件中一个一个地读取它们。

我实际上有 2 个问题,因为关于调用 Web 服务的 java 相关文档似乎很少:

  1. 如何读取返回的结果?它通常包含一个状态代码和具有该 EORI 号码的公司地址。

  2. 为什么 Eclipse 要我插入 final 语句来关闭 try 子句?

非常感谢您提供的任何提示;尤其是问题 2。回答问题 1 可能工作量太大;我不介意你跳过那个。

这是我写的代码:

package REX;

import s.dds.eos.ws.eori.*; /* proxy generated automatically from WSDL service description */

public class REX {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        String[] EORI;

        EORIValidationProxy proxy = new EORIValidationProxy();
        EORI = new String[1];

        try {
            EORI[0] = "DE1234567890"; /* dummy value */
            proxy.validateEORI(EORI);
        }
    }
}

【问题讨论】:

  • 没有catchfinallytry 是无效的(如果是,则完全无用)。
  • (1) validateEORI() 方法是否返回任何内容?如果没有,您还可以在 proxy 对象上使用哪些其他方法?对于您正在使用的 API,这确实是一个问题。 (2) 为什么你甚至有一个不完整的try 块?如果您没有响应异常,请完全删除 try
  • 哦,是的,我忘记了 catch 子句,因为错误消息让我非常烦恼。愚蠢的错误。感谢您提醒大家,因为有几个人已经指出了这一点!至于获得网络服务结果,我需要多玩一点。干杯。

标签: java soap proxy try-catch


【解决方案1】:

我怎样才能读回返回的结果?它通常包含一个状态代码和具有该 EORI 号码的公司地址。

这取决于您使用的网络服务和代理的实现,但我猜想Status s = proxy.validateEORI(EORI);

为什么 Eclipse 要我插入 final 语句来关闭 try 子句?

这是因为任何 try-block 至少需要一个 catch-block 或 finally-block。想想如果没有这些信息,try-block 意味着什么:“试试这个”(“做这个”有什么区别,即这里没有周围的 try-block 的语句? - 不会有); )

另一方面,try-catch 的意思是“试试这个,如果失败了就做那个”,而 try-finally 的基本意思是“先试试这个,然后再做那个,不管第一件事是否成功”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    • 2011-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多