使用原始wsdl在CXF中生成wsdl

时间:2011-08-05 11:40:26

标签: web-services wsdl cxf

任何人都可以告诉我使用原始WSDL在Apache CXF服务器中生成WSDL的方法是什么。

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

我想知道CXF中的设置。

1 个答案:

答案 0 :(得分:4)

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

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

OR 在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
  4. 请记住按xmlns:e="namespace as in your wsdl"

    定义e:和e1的命名空间

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

      

    我发现CXF的文档很少,而且必须这样做   挖掘代码和xsds为我的解决方案