问题标签 [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 - 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 中有以下配置:
maven - maven wsdl2java 配置无法正常工作
我正在寻找通过 maven 执行 wsdl2java 并尝试了几种不同的方法但没有完全成功。我这样做的第一种方式:
由于调用了 org.apache.axis.wsdl.WSDL2Java,此版本将创建我正在寻找的确切结构,但除此之外不会继续使用任何其他 maven 插件。它以执行 main 或类似的方式结束日志。
我尝试过的另一种方法:
此执行的问题在于,它生成的 java 文件比上一次执行时要多得多。我检查了这个较大文件集的兼容性,发现它可以正常工作,但想找到一种方法来强制它使用与第一个示例相同的 java 类执行。但是,此版本将完成并允许我继续使用 maven 调用的以下插件。
第三:
这个版本甚至没有被识别......想知道我是否错误地调用了插件,因为它甚至没有显示在任何地方都有详细的日志记录。
我一直在寻找很多,但还没有找到一个成功的答案。我非常接近于通过调用第一个示例然后继续编写一个 shell 脚本来运行 maven 设置。任何帮助是极大的赞赏。谢谢。
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" 或其任何子类在此上下文中未知。
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。
在此先感谢您的帮助!
java - cxf-codegen-plugin 和“两个声明导致 ObjectFactory 类发生冲突。”
我们正在尝试生成一个 Java SOAP 客户端以与外部服务集成。由于这是一家外部公司,因此不能选择更改 WSDL。
尝试使用 cxf-codegen-plugin Maven 插件生成客户端时,我们收到以下错误:
该问题与 WSDL 中的以下声明有关:
很明显可以看出问题出在哪里。我的问题是,WSDL 似乎可以通过在线通用 SOAP 客户端很好地导入,所以它至少必须是有效的。我还读到生成没有该-p
选项的 Java 代码将导致生成器创建单独的包,这应该可以解决问题。但是,如何使用 cxf-codegen-plugin Maven 插件来做到这一点?
java - cxf-codegen-plugin 中的 wsdl2java 目标没有注意到 xsd 的变化
如何使 cxf-codegen-plugin 和 wsdl2java 目标检查 wsdls 使用的 xsd 文件是否已被修改?当我在 xsd 中进行更改然后运行mvn verify
它时,它不会重新编译 jar 文件。
插件配置的片段。
一个不利的解决方案是放置maven clean 插件,以便它每次都清理并且不会错过 xsd 更改,但这也会每次清理它,这会使构建变慢。
java - wsdl 中的 CXF wsdl2java listwrapper 应该被解包
我目前正在将旧轴 wsclient 更新为 cxf(jaxb 数据绑定)客户端,现在存在差异,如何list/array
处理。
让我用一个例子来解释一下:
wsdl
在另一个 complexType 中
现在,当尝试在 cxf 中访问此属性时,还需要从列表包装器中获取值
Axis 会自动解开这个,因为你只使用了这个数组
我的问题是,这有可能在 cxf 中做到这一点吗?
我的 wsdl 的一部分:
java - 我想在 CXF codegen 上添加 @XmlRoot 注释
我有一个 WSDL 文件,其中包含以下条目:
我使用具有以下设置的 CXF Codegen 插件:
生成的 java 代码如下所示:
问题是这里缺少 @XmlRootElement 。还有另一个类似的问题,例如
正如其他答案提到的,我可以放置绑定文件。所以我创建了一个包含以下内容的绑定文件:
我在 POM.XML 中添加了以下块:
之后我收到错误消息:
所以我不知道我该如何准确地描述当 complexType 是 OutputMapping1 然后将 @XmlRootElement 放在 OutputMapping1.java 中,名称为“GetList_11Response”。
gradle - cxf-codegen-plugin 移植到 Gradle
我试图复制这个插件在 Gradle 中的作用。如果我执行:
...然后我得到:
据我所知,虽然线条是相同的。有什么想法可能是错的吗?
java - cxf-codegen 在 Maven 中不起作用,导致“没有生成”
我使用 cxf-codegen 作为 Maven 插件,它不会从 wsld 生成我的代码。Maven 告诉我构建成功,但给我消息“没有生成”
我包括了我完整的 pom 文件。我是否缺少依赖项?