如何在 JAX-WS 中正确指定 wsdl 位置?
How to correctly specify the wsdl location in 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 位置的另一种方法是什么?
有两种可能的方法:
- 将 WSDL 添加为项目的资源。然后它将嵌入到最终的 jar 中,您可以使用
Class.getResource(String name)
. 访问它
- 指向网络服务器托管的 WSDL。它通常采用
http://example.com/MyWebService?WSDL
形式(注意最后的 ?WSDL
)。
您可以将 wsdl 放在您的类路径中并按如下方式引用它:
URL url = ClassLoader.getResource("myproject.wsdl");
或者
URL url = ClassLoader.getSystemResource("myproject.wsdl");
我最近收到了一个 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 位置的另一种方法是什么?
有两种可能的方法:
- 将 WSDL 添加为项目的资源。然后它将嵌入到最终的 jar 中,您可以使用
Class.getResource(String name)
. 访问它
- 指向网络服务器托管的 WSDL。它通常采用
http://example.com/MyWebService?WSDL
形式(注意最后的?WSDL
)。
您可以将 wsdl 放在您的类路径中并按如下方式引用它:
URL url = ClassLoader.getResource("myproject.wsdl");
或者
URL url = ClassLoader.getSystemResource("myproject.wsdl");