我们有一个WebService,我们称之为CarLoans,它是由cxf基于WSDL文件生成的。使用来自外部依赖项的maven-resources-plugin检索WSDL。 cxf-codegen-plugin有一个绑定文件,我们用它来为各种其他元素添加前缀,例如请求和响应对象到WebService。假设我们希望请求和响应对象以WS和CarLoans为前缀的EndPoint作为前缀。我们如何使用bindings.xml文件配置它?生成的java代码看起来应该大致如此(不包括不相关的注释等):
@WebService(targetNamespace="http://url.com/", name="CarLoansPortType")
public interface CarLoansPortType {
public WSCarLoansResponse getCarLoans(@WebParam(name = "request") WSCarLoansRequest request)
}
答案 0 :(得分:1)
我在apache邮件档案中找到了一个有趣的链接 - http://mail-archives.apache.org/mod_mbox/cxf-users/201202.mbox/%3CCAMHV5gYe8VQDoBfKdEP9nrg-VXy9FnA9BL_4oqpE_zKC2=-x3w@mail.gmail.com%3E
相关代码粘贴在下面:
<jaxws:bindings
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<jaxws:bindings node="wsdl:definitions/wsdl:portType[@name='CREATE_RECIPE']">
<jaxws:class name="CreateRecipeSEI"/>
</jaxws:bindings>
</jaxws:bindings>
所以基本上它应该相当容易。我在使用XPATH表达式时遇到了一些局部问题,但这绝对是我们想要的。
答案 1 :(得分:0)
我不建议这样做。
您正在使用的是'Contract First'方法,其中Web服务及其数据类型在WSDL文件中定义。然后使用工具以给定的编程语言生成适当的代码。
但是,如果您是相关WSDL的作者,则需要在WSDL中修改数据类型的名称。在<types>
元素下查找数据类型定义。 WSDL很复杂,只有当你知道自己在做什么时才应该修改它们。