簡體   English   中英

無法覆蓋 apache cxf 2.4.6 中的 wsdl 位置

[英]Unable to overide the wsdl location in apache cxf 2.4.6

我已經將 wsdl 文件放在

E:/testworkspace/projectname/docroot 
                  WEB-INF
                       src
                         com
                           test
                             wsdl

如果我給出完整路徑 wsdlLocation = " file:E:/testworkspace/projectname/docroot/WEB- INF/src/com/test/wsdl/some.wsdl " ,它會選擇 WSDL 文件。

但我需要制作通用的東西,比如直接獲取:

        @WebServiceClient(name = "TestInterfaceService", 
        wsdlLocation = "WEB-INF/wsdl/some.wsdl",                  
        targetNamespace = "http://www.google.com/job") 

     public class TestInterfaceService extends Service {
     public final static URL WSDL_LOCATION;
     public final static QName SERVICE = new QName("http://www.google.com/job", "TestInterfaceService");
     public final static QName TestInterfaceSoapHttpPort = new QName("http://www.google.com/job", "TestInterfaceSoapHttpPort");
  static {
    URL url = null;
    try {

        url = new URL("WEB-INF/wsdl/some.wsdl");

    } catch (MalformedURLException e) {
        java.util.logging.Logger.getLogger(TestInterfaceService.class.getName())
            .log(java.util.logging.Level.INFO, 
                 "Can not initialize the default wsdl from {0}", "WEB-INF/wsdl/some.wsdl");
    }
    WSDL_LOCATION = url;
}

您能否建議如何獨立於我的本地系統選擇 WSDL 文件,目前它拋出錯誤 Can not initialize the default wsdl from WEB-INF/wsdl/some.wsdl

您需要一個有效的 URL 字符串才能創建新的 URL。 如果您的服務確實公開了 URL,則可以選擇使用它。

如果您的客戶端是 Web 應用程序,另一種選擇是通過您的應用程序提供 wsdl 並使用http://localhost/app/some.wsdl從那里引用它

希望有幫助

不確定您要在這里實現什么,配置: wsdlLocation = "WEB-INF/wsdl/some.wsdl"就完全沒問題,只要 WSLD 文件在WEB-INF/wsdl ,如果您將 wsdl 放在WEB-INF/src/com/test/wsdl並像這樣指定 WSDL 位置: wsdlLocation = "WEB-INF/wsdl/some.wsdl - 當然它不會工作,在WEB-INF/wsdl添加你的 WSDL,一切都會美好的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM