2015-08-14 24 views
0

我最近收到了一個JAX-WS客戶端應用程序的代碼,其中我看到爲了構建端點而在本地指定了一個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位置的另一種方法?

+0

晴web服務容器創建上實現的基礎上有自己的WSDL。您可以像這樣直接從端點URL獲取wsdl - > http:// endpointURL?wsdl –

回答

1

你可以把你的classpath WSDL和引用它,如下:

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

或者

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

有兩種可能的方式:

  • 添加WSDL作爲項目的一個資源。它會被嵌入到最終的jar中,你可以通過Class.getResource(String name)來訪問它。
  • 指向由Web服務器託管的WSDL。它通常是http://example.com/MyWebService?WSDL的形式(注意末尾的?WSDL)。
+0

對於Class.getResource,資源應該與Class相同;不在資源文件夾中(配置爲源) – Garry