问题标签 [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.

0 投票
1 回答
111 浏览

java - 如果混合全局构建和配置文件构建,cxf-codegen-plugin 会生成错误代码

Java SOAP 网络应用程序。我有几项服务要查询,我必须根据环境(测试、产品)区分其中一项。我认为将通用 WSDL 保持在一起并为需要区分的服务创建两个配置文件是一种逻辑。不幸的是,我无法在运行时以编程方式更改 WSDL_LOCATION。所以我写了(将 XML 简化为 YAML 并删除明显的元素,例如<phase>generate-sources</phase>):

但这不起作用:Service1 和 Service2 使用完整路径 WSDL_LOCATION 生成,该路径显然在服务器上失败。为什么?

0 投票
1 回答
309 浏览

java - 使 cxf-codegen-plugin 生成的类能够持久化

我有一个使用 cxf-codegen-plugin 创建 SOAP 客户端的 Maven jar 项目。

在另一个使用该客户端的 Maven 项目中,只需要使用 JPA (当前使用 OpenJPA)持久化由 cxf-codegen-plugin 生成的数据类的实例(一些肥皂响应) 。

可能有一些配置的东西 - 例如 - 在每次客户端源代码生成之后,在编译/增强和安装客户端 jar 之前将 @Entity 注释添加到数据类,但我想摆脱这个阶段,同时仍然保持客户端尽可能通用。使用客户端的项目应该能够安全地假设该类具有持久性。

处理这个问题的最佳方法可能是客户端项目设置中的一些技巧(当前使用 openjpa-maven-plugin 来增强数据类)来检测所需的类并以某种方式使它们具有持久性并增强这些。

如果可能的话,我宁愿跳过维护 beans.xml 之类的东西并坚持使用注释,但这也是一种选择。

0 投票
1 回答
280 浏览

xsd - CXF JAXB 基础 Equals/Hashcode

我在为导入的 xsd 文件生成 equals 和 hashcode 方法时遇到问题,这些文件输出到我的 wsdl 文件的单独位置。我目前在同一个文件夹中有一个 .wsdl 和 .xsd 文件。.wsdl 文件导入这些与 wsdl 文件具有不同命名空间的 xsd 文件。生成这些 xsd 文件时,它们不包含 equals 或 hashcode 方法。下面是我的 pom/xml 配置和文件的示例:

示例 wsdl(导入的 Rule.xsd 未生成方法):

我认为这是生成的 xsd 位置的问题,因为我可以通过将其移动到与 wsdl 命名空间相同的父文件夹来使其工作。我希望在不移动这些文件位置的情况下使其工作,因为我有一个大型代码库,如果我这样做需要大量重构。

欢迎大家提出意见。

0 投票
0 回答
285 浏览

java - CXF-CodeGen-Plugin - 禁用文档生成

我目前cxf-codegen-plugin要将 WSDL 转换为 Java 代码 ( wdsl2java)。

我无法更改 WSDL 定义,因为它是由外部源提供的,但此文件包含导致 Javadoc 生成失败并出现以下错误的文档:

如何在 CXF Codegen 中禁用文档生成?我似乎无法在任何在线文档中找到答案,包括 Maven 中央存储库。有可能吗?

0 投票
1 回答
649 浏览

java - 如何使用 CXF WSDL2Java 重命名 wsdl 中的元素?

我正在尝试使用 CXF WSDL2Java 将第 3 方 WSDL 文件(我无法更改)解析为 Java,但我遇到了异常(如下所示)。这个完全相同的异常重复了 7 次。它们完全相同。我猜问题出在 xsd 中,在那里我找到了几个这样的片段:

调查错误,似乎我需要做一些自定义 JaxB 映射,但我完全不知道该怎么做。有人可以告诉我如何使用带有 CXFs WSDL2Java 的外部 JaxB 映射文件重命名复杂类型或元素来解决此错误吗?我将 cxf-codegen-plugin 与 maven 一起使用。

0 投票
0 回答
641 浏览

java - cxf codegen-plugin 生成 JAXBElement 列表,即使 generateElementProperty=false

我将 cxf-codegen-plugin wsdl2java 与以下绑定文件一起使用:

我的问题是我的 xsd 的以下部分

我仍然得到一个列表

我的 ClientType 类被注释

编辑:代码生成插件

有没有办法避免使用 JAXBElement 列表而不是 String 列表?

谢谢

0 投票
0 回答
753 浏览

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 文件?

0 投票
2 回答
1727 浏览

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-pluginjaxb2-maven-plugin或者cxf-codegen-plugin,我们将使用任何有效的方法。

0 投票
1 回答
2044 浏览

cxf-codegen-plugin - WSDL cxf 自定义绑定

我正在尝试从内联 WSDL 更改 cxf 生成源的类名。我使用 xpath 指定的绑定一直被忽略。

下面是我的绑定文件:

下面是我的wsdl文件:

下面是我的 cxf pom 插件:

我找不到使用 CXF 的内联 WSDL 的自定义绑定示例。任何帮助表示赞赏。谢谢,

0 投票
0 回答
561 浏览

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 对象。

有人可以解释我这种行为以及如何避免这种行为吗?我是否需要实现某种自定义拦截器或者我缺少一些配置?