问题标签 [cxf-xjc-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 - 如何为从 WSDL 生成的类使用 JAXB autoInheritance?
我正在从soap
webservices生成 java 类wsdl
。
这些请求不共享一个公共接口,但我希望它们实现一个,或者扩展一个公共类。
因此,我正在尝试使用xcj-plugin
. 该声明
应该注意这一点,并让所有带@XmlRootElement
注释的类自动实现定义的BaseInterface
.
但是生成的类没有。没有类实现这个接口。为什么?以下配置可能有什么问题?
ant - 使用 JAXB 扩展时获取“Provider x not a subtype”
我以前发布过这个,但我认为最好重新表述这个问题,因为我没有从这个或我试图询问的任何其他地方得到有用的回应。
我试图在从 XJC 生成类时使用几个现有的 JAXB 扩展。使用“cxf-xjc-plugin”,此处理在 Maven 构建中运行良好很长时间。我正在尝试将此构建转换为 Gradle,但我发现除了 Maven 构建之外的所有其他策略都失败并出现相同的错误,如下所示:
引起:java.util.ServiceConfigurationError: com.sun.tools.xjc.Plugin: Provider com.sun.tools.xjc.addon.xew.XmlElementWrapperPlugin 不是 com.sun.tools.xjc.Options.findServices 的子类型(Options .java:957) 在 com.sun.tools.xjc.Options.getAllPlugins(Options.java:374) 在 com.sun.tools.xjc.Options.parseArgument(Options.java:688) 在 com.sun.tools。 xjc.Options.parseArguments(Options.java:809) 在 com.sun.tools.xjc.XJC2Task._doXJC(XJC2Task.java:474) 在 com.sun.tools.xjc.XJC2Task.doXJC(XJC2Task.java:457)在 com.sun.tools.xjc.XJC2Task.execute(XJC2Task.java:380) 在 com.sun.istack.tools.ProtectedTask.execute(ProtectedTask.java:103) 在 org.apache.tools.ant.UnknownElement.execute (UnknownElement.java:292) 在 org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
我可以用一个简单的 Gradle 构建脚本来演示这一点。它不需要任何源代码或模式来编译,错误发生在设置类路径时。
请注意,尽管此处的错误引用了“Element Wrapper”插件,但如果我从类路径中删除该 jar,我会收到相同的错误,而是引用了另一个 JAXB 扩展,即“Fluent API”扩展。据我所知,我引用了这两个扩展的最新版本,以及 XJC 和相关 jar 的最新版本。
我当前的简单测试用例 Gradle 脚本是这样的(我称之为“testxjc.gradle”):
我用“gradle -b testxjc.gradle build --stacktrace”运行它
通过绕过 Ant 任务并直接使用 XJCFacade 类,我也能够演示相同的错误。这需要有所需的罐子可供参考。这是我当前的测试脚本(如果您在 Linux 上进行测试,请将分号更改为类路径中的冒号):
我已经在 Win7 和 CentOS 上测试过了。
更新:
我现在有一两个线索。
首先,当我说我在 Win7 和 CentOS 上都进行了测试时,我指的是 shell 脚本。到目前为止,我还没有在 CentOS 上运行最小的 Gradle 构建脚本。当我在 CentOS 上运行这个最小的 Gradle 构建脚本时,它成功了(这意味着它抱怨缺少架构)。除了不同的操作系统,我在每个盒子上都有不同版本的 Gradle 和 Java。我正在交换这些版本,看看我还能找到什么其他线索。
我还收到了对“jaxb-dev”邮件列表的回复,有人说他们已经看到了这种症状,他们认为当在类路径上找到多个 JAXB jar 和一些 JAXB 时可能会发生这种情况类由一个类加载器加载,其他 JAXB 类由另一个加载。
从这个输入中,我想我应该尝试使用详细的类加载来运行我的最小测试,看看它们有什么不同,但我不确定我能否通过会产生的所有噪音看到我需要什么。
xsd - s4s-elt-character:除“xs:appinfo”和“xs:documentation”之外的架构元素中不允许使用非空白字符
在 xsd 中验证 unsignedInt 时出现以下异常。我无法使用 unsignedInt 类型验证字符串“abce”。请帮助我解决这个问题。
在这个限制中,我是整数值的错误,也像 12,13。
我的输入:
最终 XSD:
新的一个:
java - 使用CXF集成jaxb绑定文件生成基于WSDL的客户端
我试图在使用 CXF XJC 插件调用 wsdl2java 时合并一个 JAXB 绑定文件。所以我实际上正在生成 wsdl 并使用
-createxsdimports
创建外部模式文件,这样我就可以在该特定文件上执行 JAXB 绑定,而不必使用 JAXWS 绑定。我正在寻找有关我遇到的错误的一些帮助或替代解决方案,例如使用 JAXWS 绑定文件而不进行外部化等。
这是我的 WSDL:
这是 TestImpl_schema1.xsd:
这是我的 binding.xml 文件:
这是我的 Maven 依赖项:
这是我在尝试运行插件时遇到的错误:
java - 使用绑定将日期类型转换为 jaxb 中的字符串
我收到错误消息:
无法将 xsd:date 转换为 java.lang.String 类型
我正在使用带有 CXF XJC 插件的 binding.xml 文件
XSD:
绑定.xml
cxf xjc 插件:
生成的代码包含 XMLGregorianCalendar 而不是 String
请问有什么建议吗?
java - CXF 生成字符串而不是枚举
例如,我有一个像这样的 WSDL 定义结构:
然后你有一些其他的对象,例如:
现在,如果我使用 cxf-codegen-plugin,它将生成一个枚举“MyDayType”并在“MyEntity”类中引用它。通常这正是您想要的。
但是在我的情况下,我不能使用枚举,因为我在以后使用生成的 Java 代码的方式上受到限制。所以我希望 CXF 生成字符串而不是枚举。所以它只是将其他对象中所有出现的这种类型映射到一个字符串。在我的示例中,而不是:
我想拥有:
我怎样才能做到这一点?我宁愿以某种方式做到这一点,而无需编写我自己的自定义 jaxb 插件。
java - 如何在 cxf-xjc-plugin 中禁用 .xsd 验证?
我正在尝试使用 maven cxf-xjc-plugin 从提供程序(我无法更改这些文件)文件中生成 Java 源代码。
Evertyhing 工作正常,但我需要添加一个新的 .xsd 文件。该文件包含其他 .xsd 文件,并且存在冲突,因为新的 .xsd 文件定义了与现有 xsd 文件同名的实体(我知道,我知道,但我只是这些 .xsd 文件的用户)。啊! 它们应该在同一个包中...
错误是典型的:
一个模式不能包含两个同名的全局组件;此架构包含两次出现的 ...
我读到有人能够解决类似的问题,告诉他使用的工具不验证 .xsd。
我想知道是否可以告诉 cxf-xjc-plugin no 来验证 .xsd 文件并转换成 Java
maven配置如下:
提前致谢!
java - 如何将 cxf-xjc-ts 与 lang3 中的 ToStringBuilder 一起使用?
在使用cxf-xjc-ts
插件时xsdtojava
,可以添加属性<extensionArg>-Xts</extensionArg>
让编译器生成如下方法:
问题:apache.commons-lang3
仅在类路径上时,包应该是:
org.apache.commons.lang3.builder.ToStringBuilder
并且使用org.apache.commons.lang3.builder.DEFAULT_STYLE
.
问题:如何告诉-ts
插件在生成期间实际使用来自 lang3 的构建器?
eclipse - Maven build-helper 插件不包括多模块项目中的源
我正在使用 cxf-xjc 生成 Web 服务工件,并尝试使用 build-helper 插件将它们添加到源中。当它在单个 Maven 项目中使用时,它可以正常工作,但是现在我已经进入了一个多模块项目,生成的类没有作为源包含在内。
类已正确生成,并且在生成类后正在执行 build-helper 插件。build-helper 的输出显示了类所在的正确源目录路径并显示“已添加”。
pom.xml
控制台截图
在我将其移至模块之前,此配置运行良好。我已经更改为生成源和流程源阶段之间的构建助手阶段,但没有运气。我正在使用基于 Eclipse Neon 4.6.1 的 Spring Tool Suite 3.8。
谢谢
java - 意外元素(uri:“”,本地:“”)。预期元素是(无)
我无法使用 cxf-xjc-plugin 将响应 xml 映射到由 xsd 生成的 java。
pom.xml
响应.xsd
自动化IDResponse.java
生成IDs.java
main.java
错误 :