问题标签 [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 回答
3868 浏览

java - JAXWS:如何更改在外部 XSD 中定义的 CXF 生成的类名称?

我正在尝试更改从 wsdl 生成的类的名称(我不想直接修改任何 wsdl 或 xsd 文件)。问题是它的定义在一个单独的 xsd 文件中。

wsdl 的结构如下所示:

主.wsdl:

typedef.wsdl:

FooBar.xsd:

现在假设我想将 FooType 类重命名为 Foo。读完之后:JAXB: How to change XJC-generated classes names when attr type is specified in XSD? 我创建了以下绑定文件。

jaxws_bindings.xml:

但我得到的只是一个错误:

我已经尝试了所有想到的东西,但仍然没有接近成功。有人碰巧知道怎么做吗?

PS:要生成类,我使用 maven cxf codegen 插件,在 pom.xml 中有以下配置:

0 投票
2 回答
10990 浏览

maven - maven wsdl2java 配置无法正常工作

我正在寻找通过 maven 执行 wsdl2java 并尝试了几种不同的方法但没有完全成功。我这样做的第一种方式:

由于调用了 org.apache.axis.wsdl.WSDL2Java,此版本将创建我正在寻找的确切结构,但除此之外不会继续使用任何其他 maven 插件。它以执行 main 或类似的方式结束日志。

我尝试过的另一种方法:

此执行的问题在于,它生成的 java 文件比上一次执行时要多得多。我检查了这个较大文件集的兼容性,发现它可以正常工作,但想找到一种方法来强制它使用与第一个示例相同的 java 类执行。但是,此版本将完成并允许我继续使用 maven 调用的以下插件。

第三:

这个版本甚至没有被识别......想知道我是否错误地调用了插件,因为它甚至没有显示在任何地方都有详细的日志记录。

我一直在寻找很多,但还没有找到一个成功的答案。我非常接近于通过调用第一个示例然后继续编写一个 shell 脚本来运行 maven 设置。任何帮助是极大的赞赏。谢谢。

0 投票
2 回答
1627 浏览

java - 获取 JAXBElement 列表,其中我想要预定义的 java 对象列表

我使用 Apache Camel + JAXB 进行肥皂处理。Java 眼镜是由一个名为 cxf-codegen-plugin 的 maven 插件生成的。

我面临的问题是,当我想使用一个列表属性时。在那种情况下,我总是会得到一个 JAXBElement 列表,而不是正确类的对象。

假设这个给定的 xml 被剪断:

现在所有“节点”都是 type 的不同域对象的 id AANode。所以在 xsd 中它是这样定义的:

我已经定义了一些 bindings.xml:

我想要的是这样的 POJO 属性:

但是我在运行时实际得到的是List<JAXBElement<AANode>>导致 ClassCastException 的。

编辑 1: 我错过了 cxf-codegen 框架正在生成一个类的事实,您可以清楚地看到该属性被注释了JAXBElement.class,我认为这是错误的。有趣的是,手动将注释更改为 AANode.class 将失败,并出现IllegalAnnotationException: AANode" 或其任何子类在此上下文中未知。

0 投票
0 回答
1505 浏览

java - 如何在一次执行下使用 Apache CXF codegen 插件为 Maven 生成多个服务的源

我目前正在为 Maven 使用 Apache CXF codegen 插件(版本 3.1.1)从我们的客户端提供的 WSDL 生成源代码。我指定了 wsdl2java 目标,并且我想为多个服务生成代码。我知道您可以<serviceName><wsdlOption>标签下指定 a ,但是当我尝试放置多个<serviceName>,甚至<wsdlOption>使用具有不同 的相同<wsdl>值创建另一个时<serviceName>,它似乎会忽略其中一个,而只为一项服务生成类。

我发现解决此问题的唯一方法是创建另一个相同<execution>的块并更改<serviceName>. 我做错了什么,或者这是唯一的方法吗?这是一个的整体设置<execution>(为了隐私,路径和服务名称已更改):

我已经尝试了这两个:

...还有这个(在此处的示例 4 中使用http://cxf.apache.org/docs/maven-cxf-codegen-plugin-wsdl-to-java.html):

**请注意,这些服务来自我们客户提供的同一个 WSDL。

在此先感谢您的帮助!

0 投票
1 回答
1108 浏览

java - cxf-codegen-plugin 和“两个声明导致 ObjectFactory 类发生冲突。”

我们正在尝试生成一个 Java SOAP 客户端以与外部服务集成。由于这是一家外部公司,因此不能选择更改 WSDL。

尝试使用 cxf-codegen-plugin Maven 插件生成客户端时,我们收到以下错误:

该问题与 WSDL 中的以下声明有关:

很明显可以看出问题出在哪里。我的问题是,WSDL 似乎可以通过在线通用 SOAP 客户端很好地导入,所以它至少必须是有效的。我还读到生成没有该-p选项的 Java 代码将导致生成器创建单独的包,这应该可以解决问题。但是,如何使用 cxf-codegen-plugin Maven 插件来做到这一点?

0 投票
0 回答
618 浏览

java - cxf-codegen-plugin 中的 wsdl2java 目标没有注意到 xsd 的变化

如何使 cxf-codegen-plugin 和 wsdl2java 目标检查 wsdls 使用的 xsd 文件是否已被修改?当我在 xsd 中进行更改然后运行mvn verify它时,它不会重新编译 jar 文件。

插件配置的片段。

一个不利的解决方案是放置maven clean 插件,以便它每次都清理并且不会错过 xsd 更改,但这也会每次清理它,这会使构建变慢。

0 投票
1 回答
4140 浏览

java - wsdl 中的 CXF wsdl2java listwrapper 应该被解包

我目前正在将旧轴 wsclient 更新为 cxf(jaxb 数据绑定)客户端,现在存在差异,如何list/array处理。

让我用一个例子来解释一下:

wsdl

在另一个 complexType 中

现在,当尝试在 cxf 中访问此属性时,还需要从列表包装器中获取值

Axis 会自动解开这个,因为你只使用了这个数组

我的问题是,这有可能在 cxf 中做到这一点吗?

我的 wsdl 的一部分:

0 投票
2 回答
7837 浏览

java - 我想在 CXF codegen 上添加 @XmlRoot 注释

我有一个 WSDL 文件,其中包含以下条目:

我使用具有以下设置的 CXF Codegen 插件:

生成的 java 代码如下所示:

问题是这里缺少 @XmlRootElement 。还有另一个类似的问题,例如

  1. maven-cxf-codegen-plugin 使用 Jaxb 绑定为所有生成的类添加继承
  2. 注释 CXF (wsdl2java) 生成的包
  3. 在外部为类创建 jaxb 注释

正如其他答案提到的,我可以放置绑定文件。所以我创建了一个包含以下内容的绑定文件:

我在 POM.XML 中添加了以下块:

之后我收到错误消息:

所以我不知道我该如何准确地描述当 complexType 是 OutputMapping1 然后将 @XmlRootElement 放在 OutputMapping1.java 中,名称为“GetList_11Response”。

0 投票
2 回答
11243 浏览

gradle - cxf-codegen-plugin 移植到 Gradle

我试图复制这个插件在 Gradle 中的作用。如果我执行:

...然后我得到:

据我所知,虽然线条是相同的。有什么想法可能是错的吗?

0 投票
1 回答
1253 浏览

java - cxf-codegen 在 Maven 中不起作用,导致“没有生成”

我使用 cxf-codegen 作为 Maven 插件,它不会从 wsld 生成我的代码。Maven 告诉我构建成功,但给我消息“没有生成”

我包括了我完整的 pom 文件。我是否缺少依赖项?