问题标签 [cxf-codegen-plugin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如果混合全局构建和配置文件构建,cxf-codegen-plugin 会生成错误代码
Java SOAP 网络应用程序。我有几项服务要查询,我必须根据环境(测试、产品)区分其中一项。我认为将通用 WSDL 保持在一起并为需要区分的服务创建两个配置文件是一种逻辑。不幸的是,我无法在运行时以编程方式更改 WSDL_LOCATION。所以我写了(将 XML 简化为 YAML 并删除明显的元素,例如<phase>generate-sources</phase>
):
但这不起作用:Service1 和 Service2 使用完整路径 WSDL_LOCATION 生成,该路径显然在服务器上失败。为什么?
java - 使 cxf-codegen-plugin 生成的类能够持久化
我有一个使用 cxf-codegen-plugin 创建 SOAP 客户端的 Maven jar 项目。
在另一个使用该客户端的 Maven 项目中,只需要使用 JPA (当前使用 OpenJPA)持久化由 cxf-codegen-plugin 生成的数据类的实例(一些肥皂响应) 。
可能有一些配置的东西 - 例如 - 在每次客户端源代码生成之后,在编译/增强和安装客户端 jar 之前将 @Entity 注释添加到数据类,但我想摆脱这个阶段,同时仍然保持客户端尽可能通用。使用客户端的项目应该能够安全地假设该类具有持久性。
处理这个问题的最佳方法可能是客户端项目设置中的一些技巧(当前使用 openjpa-maven-plugin 来增强数据类)来检测所需的类并以某种方式使它们具有持久性并增强这些。
如果可能的话,我宁愿跳过维护 beans.xml 之类的东西并坚持使用注释,但这也是一种选择。
xsd - CXF JAXB 基础 Equals/Hashcode
我在为导入的 xsd 文件生成 equals 和 hashcode 方法时遇到问题,这些文件输出到我的 wsdl 文件的单独位置。我目前在同一个文件夹中有一个 .wsdl 和 .xsd 文件。.wsdl 文件导入这些与 wsdl 文件具有不同命名空间的 xsd 文件。生成这些 xsd 文件时,它们不包含 equals 或 hashcode 方法。下面是我的 pom/xml 配置和文件的示例:
示例 wsdl(导入的 Rule.xsd 未生成方法):
我认为这是生成的 xsd 位置的问题,因为我可以通过将其移动到与 wsdl 命名空间相同的父文件夹来使其工作。我希望在不移动这些文件位置的情况下使其工作,因为我有一个大型代码库,如果我这样做需要大量重构。
欢迎大家提出意见。
java - CXF-CodeGen-Plugin - 禁用文档生成
我目前cxf-codegen-plugin
要将 WSDL 转换为 Java 代码 ( wdsl2java
)。
我无法更改 WSDL 定义,因为它是由外部源提供的,但此文件包含导致 Javadoc 生成失败并出现以下错误的文档:
如何在 CXF Codegen 中禁用文档生成?我似乎无法在任何在线文档中找到答案,包括 Maven 中央存储库。有可能吗?
java - 如何使用 CXF WSDL2Java 重命名 wsdl 中的元素?
我正在尝试使用 CXF WSDL2Java 将第 3 方 WSDL 文件(我无法更改)解析为 Java,但我遇到了异常(如下所示)。这个完全相同的异常重复了 7 次。它们完全相同。我猜问题出在 xsd 中,在那里我找到了几个这样的片段:
调查错误,似乎我需要做一些自定义 JaxB 映射,但我完全不知道该怎么做。有人可以告诉我如何使用带有 CXFs WSDL2Java 的外部 JaxB 映射文件重命名复杂类型或元素来解决此错误吗?我将 cxf-codegen-plugin 与 maven 一起使用。
java - cxf codegen-plugin 生成 JAXBElement 列表,即使 generateElementProperty=false
我将 cxf-codegen-plugin wsdl2java 与以下绑定文件一起使用:
我的问题是我的 xsd 的以下部分
我仍然得到一个列表
我的 ClientType 类被注释
编辑:代码生成插件
有没有办法避免使用 JAXBElement 列表而不是 String 列表?
谢谢
java - 强制 cxf 为 MTOM 附件生成 DataHandler 而不是 byte[]
我必须使用 MTOM 附件来实现 SOAP 调用。WSDL 由外部合作伙伴提供,因此我不能/不想修改它。
我曾经使用axis2和adb生成客户端,但我更愿意使用CXF和JAXB,因为生成的代码看起来更干净。
遗憾的是,WSDL 将附件元素定义如下:
这使得 CXF (Wsdl2Java) 生成以下字段:
这将导致附件在 SOAP-Message 中内联,并且 SOAP-Service 将拒绝它。
轴 2 用于使用相同的 .xsd 和 .wsdl 文件生成 DataHandler 类型的字段。
我知道我可以将定义更改为
这将生成正确的代码:
有没有办法强制 CXF 在不触及 WSDL 的情况下生成第二个结果(宁愿不这样做,因为它由第三方提供)。也许通过使用 JAXB/JAXWS-Bindings 文件?
java - 如何使 jaxb 插件使用 OffsetDateTime
我们有一个带xs:dateTime
字段的 xsd。这是我们内部的 API,我们可以保证始终包含偏移数据,因此它与 ISO-8601 兼容。例如:
2016-01-01T00:00:00.000+01:00
目前,jaxb2 插件映射xs:dateTime
到 type 的字段XMLGregorianCalendar
。如何配置插件,以便它使用 OffsetDateTime
?
我不在乎解决方案是否适用于maven-jaxb2-plugin
,jaxb2-maven-plugin
或者cxf-codegen-plugin
,我们将使用任何有效的方法。
cxf-codegen-plugin - WSDL cxf 自定义绑定
我正在尝试从内联 WSDL 更改 cxf 生成源的类名。我使用 xpath 指定的绑定一直被忽略。
下面是我的绑定文件:
下面是我的wsdl文件:
下面是我的 cxf pom 插件:
我找不到使用 CXF 的内联 WSDL 的自定义绑定示例。任何帮助表示赞赏。谢谢,
java - CXF:org.apache.cxf.interceptor.Fault:调用时参数数量错误
我正在使用 apache cxf 和 codegen maven 插件(均发布 3.1.11)实现一个简单的客户端。
这是我的示例 wsdl:
我需要更改客户端端点,所以我决定使用 cxf.frontend 功能。我创建了一个简单的客户端,并使用 api 来设置地址属性。这是代码:
然后在我的单元测试中,我尝试调用服务(由 codegen 插件创建的服务):
但我收到一个肥皂错误 org.apache.cxf.binding.soap.SoapFault:在调用 public void it.test.cxf.impl.New_Port_0SoapImpl.openTk 时参数数量错误。
我发现问题似乎出在 org.apache.cxf.jaxws.interceptors.WrapperClassOutInterceptor 内部,特别是当这个拦截器使用 getHelperWrapper 方法创建 WrapperHelper 类时。然后使用这个包装器使用由 codegen 插件创建的 ObjectFactory (createWrapperObject(objs);) 创建对象。这会产生一个所有字段为空的新 InputMappin1 对象。
有人可以解释我这种行为以及如何避免这种行为吗?我是否需要实现某种自定义拦截器或者我缺少一些配置?