繁体   English   中英

如何使用CXF更改WebService的名称?

[英]How to change the name of a WebService using CXF?

我们有一个Web服务,我们称之为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)
}

我在apache邮件存档中找到了一个有趣的链接-http: //mail-archives.apache.org/mod_mbox/cxf-users/201202.mbox/%3CCAMHV5gYe8VQDoBfKdEP9nrg-VXy9FnA9BL_4oqpEE_zKC2=-x3w@mail。

相关代码粘贴在下面:

<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表达式正常工作时遇到了一些本地问题,但这显然是我们想要的。

我不建议这样做。

您使用的是“合同优先”方法,其中Web服务及其数据类型在WSDL文件中定义。 然后使用工具以给定的编程语言生成适当的代码。

但是,如果您是有关WSDL的作者,则需要修改WSDL中的数据类型的名称。 <types>元素下查找数据类型定义。 WSDL非常复杂,只有在知道自己在做什么的情况下,才应修改它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM