【问题标题】:How to correctly specify the wsdl location in JAX-WS?如何在 JAX-WS 中正​​确指定 wsdl 位置?
【发布时间】:2015-08-14 09:18:36
【问题描述】:

我最近收到了一个 JAX-WS 客户端应用程序的代码,其中我看到在本地指定了一个 wsdl 以构建端点。但它是静态指定的,我认为这是不对的。

static {
    URL url = null;
   try {
      url = new URL("file:/home/user/work/src/proj/myproject.wsdl");
    } catch (MalformedURLException e) {
        e.printStackTrace();
    }
    WSDL_LOCATION = url;
}

这不是正确的做法吗?指定此 wsdl 位置的另一种方法是什么?

【问题讨论】:

  • 大多数webservice容器在实现的基础上创建自己的wsdl。您可以像这样直接从端点 url 获取该 wsdl -> endpointURL?wsdl

标签: java wsdl jax-ws


【解决方案1】:

您可以将 wsdl 放在您的类路径中,并按如下方式引用它:

URL url = ClassLoader.getResource("myproject.wsdl");

或者

URL url = ClassLoader.getSystemResource("myproject.wsdl");

【讨论】:

    【解决方案2】:

    有两种可能的方法:

    • 将 WSDL 添加为项目的资源。然后它将嵌入到最终的 jar 中,您可以使用 Class.getResource(String name) 访问它。
    • 指向由 Web 服务器托管的 WSDL。它通常采用http://example.com/MyWebService?WSDL 的形式(注意末尾的?WSDL)。

    【讨论】:

    • 对于 Class.getResource 资源应该与 Class 在同一个包中;不在资源文件夹中(配置为源)
    猜你喜欢
    • 2019-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多