任何人都可以告诉我使用原始WSDL在Apache CXF
服务器中生成WSDL的方法是什么。
我知道Axis 2
在Service.xml
中有一个配置,要将useOriginalWSDL
设置为TRUE,我会获得原始的wsdl。
我想知道CXF中的设置。
答案 0 :(得分:4)
要使用原始WSDL在CXF Server中生成WSDL,我们可以在元素wsdlLocation
中使用属性jaxws:endpoint
属性,指定端点的WSDL合约的位置。 WSDL合约的位置与部署服务的文件夹相关。
OR
在CXF中我们可以使用@WebService
注释我们可以指定WSDL位置请参考文档
关于@WebService
我自己找到答案,我认为这是一个简单的问题,但觉得这个答案可以在stackoverflow中
修改强>
尽管我添加了wsdlLocation
,但CXF框架无法创建该服务。除非声明无法创建服务,否则apache tomcat中的错误并没有那么有用。
为了正常工作,jaxws:endpoint
应具有以下属性:
wsdlLocation
- 项目文件夹中的相对路径,例如/WEB-INF/originalwsdl.wsdl
serviceName
- WSDL中的服务名称,在wsdl中指定了名称空间,例如e:ServiceName
endpointName
- 这是端口绑定名称,与serviceName相同的规则,例如e1:endpointName
请记住按xmlns:e="namespace as in your wsdl"
完成所有这些设置后,我的应用程序工作了 我们从wsdl创建的类应该具有与目标名称空间相同的包名,以便使用原始WSDL创建完全相同的WSDL。请有人证实这一发现。
我发现CXF的文档很少,而且必须这样做 挖掘代码和xsds为我的解决方案