如何在JAX-WS中正确指定wsdl位置?

时间:2015-08-14 09:18:37

标签: java wsdl jax-ws

我最近收到了一个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的位置的另一种方法是什么?

2 个答案:

答案 0 :(得分:2)

有两种可能的方式:

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

答案 1 :(得分:2)

您可以将wsdl放在类路径中并按如下所示引用它:

List<KeyValuePair<string,float>> matching = new List<KeyValuePair<string,float>>();

int i = 0;
var all = _dict.Select(kvp => kvp).ToList().OrderBy(kvp => kvp.Value);
all.ForEach(kvp => {
    if(i < all.Count() - 1 && Math.Abs(all[i+1].Value - kvp.Value) < threshhold)
    {
         matching.Add(kvp);
         if(i == all.Count() - 1) matching.add(all[i+1]); // Need to manually add the final entry if it's a match
    }
    i++;
});

或者

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