简体   繁体   English

无法覆盖 apache cxf 2.4.6 中的 wsdl 位置

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

i have placed the wsdl files in我已经将 wsdl 文件放在

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

if i give the full path say wsdlLocation = " file:E:/testworkspace/projectname/docroot/WEB- INF/src/com/test/wsdl/some.wsdl " , it picks the WSDL file.如果我给出完整路径 wsdlLocation = " file:E:/testworkspace/projectname/docroot/WEB- INF/src/com/test/wsdl/some.wsdl " ,它会选择 WSDL 文件。

but i need to make generic something like directly fetching:但我需要制作通用的东西,比如直接获取:

        @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;
}

Can you please suggest how to pick WSDL files independently from that of my local system, currently it throws the error Can not initialize the default wsdl from WEB-INF/wsdl/some.wsdl您能否建议如何独立于我的本地系统选择 WSDL 文件,目前它抛出错误 Can not initialize the default wsdl from WEB-INF/wsdl/some.wsdl

You need a valid URL string to be able to create a new URL.您需要一个有效的 URL 字符串才能创建新的 URL。 If your service does expose the URL, it might be an option to use that.如果您的服务确实公开了 URL,则可以选择使用它。

If your client is a web application, another option is to make the wsdl available via your application and reference it from there using http://localhost/app/some.wsdl如果您的客户端是 Web 应用程序,另一种选择是通过您的应用程序提供 wsdl 并使用http://localhost/app/some.wsdl从那里引用它

Hope that helps希望有帮助

不确定您要在这里实现什么,配置: 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