【问题标题】:use original wsdl to generate wsdl in CXF在CXF中使用原始wsdl生成wsdl
【发布时间】:2011-08-05 11:40:25
【问题描述】:

谁能告诉我在Apache CXF服务器中使用原始WSDL生成WSDL的方法是什么。

我知道Axis 2Service.xml 中有一个配置,将useOriginalWSDL 设置为TRUE,我得到了原始的wsdl。

我想知道CXF中的设置。

【问题讨论】:

    标签: web-services wsdl cxf


    【解决方案1】:

    为了在 CXF Server 中使用原始 WSDL 生成 WSDL,我们可以在元素 jaxws:endpoint 中使用属性 wsdlLocation

    属性,指定端点的 WSDL 契约的位置。 WSDL 契约的位置与部署服务的文件夹相关。

    或 在CXF中我们可以使用@WebService注解我们可以指定WSDL的位置请参考文档 关于@WebService

    我自己找到了答案,我认为这是一个简单的问题,但感觉这个答案可以在stackoverflow中

    编辑:

    虽然我添加了wsdlLocation,但CXF框架无法创建服务。 apache tomcat 中的错误并没有太大帮助,只是说明无法创建服务。 为了正常工作jaxws:endpoint 应具有以下属性:

    1. wsdlLocation - 项目文件夹的相对路径,例如 /WEB-INF/originalwsdl.wsdl
    2. serviceName - WSDL 中的服务名称,在 wsdl 中指定命名空间,例如 e:ServiceName
    3. endpointName - 这是端口绑定名称,与 serviceName 规则相同,例如 e1:endpointName

    记得用xmlns:e="namespace as in your wsdl"为e:和e1定义命名空间

    在所有这些设置之后,我的应用程序工作了。 我们从 wsdl 创建的类应该具有与目标名称空间相同的包名,以便使用原始 WSDL 创建完全相同的 WSDL。请有人确认这一发现。

    我发现 CXF 的文档很少,因此不得不 挖掘我的解决方案的代码和 xsds

    【讨论】:

    • 问和回答一个“简单”的问题很好,完全符合规则。一个问题通常只有在你真正理解后才变得简单。在此之前,非常艰难。
    猜你喜欢
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 2015-06-14
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    • 1970-01-01
    相关资源
    最近更新 更多