CXF - Wsdl2java - XX 属性已定义

2023-12-22

我使用 CXF 生成客户端类来访问 Web 服务服务器。 Web 服务基于 WCF (.NET)。

当我调用 wsdl2java 时,出现以下错误:

The id property is already defined. use <jaxb:property> to resolve this conflict. The following location matches the above error : http://*****/WcfDemandService.svc?xsd=xsd2 [0,0]

如果我询问 xmlbeans 数据绑定(使用“db xmlbeans”选项),则不会出现此错误。

有什么方法可以使用 JAXB 数据绑定生成类吗?


当类型具有同名的属性和元素时,通常会发生此类问题。

架构.xsd

<?xml version="1.0" encoding="UTF-8"?>
<schema 
    xmlns="http://www.w3.org/2001/XMLSchema" 
    targetNamespace="http://www.example.org/schema" 
    xmlns:tns="http://www.example.org/schema" 
    elementFormDefault="qualified">

    <element name="foo">
        <complexType>
            <sequence>
                <element name="bar" type="string"/>
            </sequence>
            <attribute name="bar" type="string"/>
        </complexType>
    </element>

</schema>

xjc架构.xsd

当我们尝试从该 XML 模式生成 Java 模型时,我们收到以下错误。

parsing a schema...
[ERROR] Property "Bar" is already defined. Use &lt;jaxb:property> to resolve this conflict.
  line 11 of file:/Users/bdoughan/Scratch/src/forum16714465/schema.xsd

[ERROR] The following location is relevant to the above error
  line 13 of file:/Users/bdoughan/Scratch/src/forum16714465/schema.xsd

绑定.xml

JAXB 绑定文件可用于自定义生成的类。这里我们将使用它来重命名与对应的属性bar属性。

<jxb:bindings 
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
    version="2.1">

    <jxb:bindings schemaLocation="schema.xsd">
            <jxb:bindings node="//xs:element[@name='foo']/xs:complexType/xs:attribute[@name='bar']">
                <jxb:property name="barAttribute"/>
            </jxb:bindings>
    </jxb:bindings>

</jxb:bindings>

xjc -b 绑定.xml 架构.xsd

现在,当您生成 Java 类时,您将得到一个类似以下的类:

package org.example.schema;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "bar"
})
@XmlRootElement(name = "foo")
public class Foo {

    @XmlElement(required = true)
    protected String bar;
    @XmlAttribute(name = "bar")
    protected String barAttribute;

    public String getBar() {
        return bar;
    }

    public void setBar(String value) {
        this.bar = value;
    }

    public String getBarAttribute() {
        return barAttribute;
    }

    public void setBarAttribute(String value) {
        this.barAttribute = value;
    }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CXF - Wsdl2java - XX 属性已定义 的相关文章

  • 使用命名空间和前缀进行 JAXB 解组

    我正在使用 JAXB 解析 SOAP 响应中的 xml 元素 我已经为 xml 元素定义了 POJO 类 我已经测试了没有命名空间和前缀的 pojo 类 其工作正常 尽管当我尝试使用命名空间和前缀进行解析时 面临以下异常 要求是解析来自 S
  • 在 MS-Access 中以编程方式隐藏列

    我想根据用户选择的变量数据隐藏或显示列 如何在 MS Access 2003 中将列设置为隐藏 例如 用户更改事件后 For Each ctl In Me FormNameHere Form Controls If TypeName ctl
  • 如何阻止 Apache CXF 发送响应消息?

    如果给定的 SOAP 标头元素具有给定值 例如 如果标头标记 response 的值为 0 我根本不希望 Apache CXF 返回响应 我怎样才能做到这一点 CXF 似乎假设所有呼叫都会收到响应 我知道这在 Web 服务上下文中看起来很奇
  • 您应该通过属性访问同一类中的变量吗?

    如果您有一个获取和设置实例变量的属性 那么通常您总是使用该类外部的属性来访问它 我的问题是你也应该在课堂上这样做吗 如果有的话 我总是使用该属性 即使是在班级内 但我想听到一些支持和反对的论据 以确定哪个是最正确的以及为什么 或者这只是项目
  • 使用 Maven 和 cxf-codegen-plugin 将 WSDL 客户端打包在 JAR 中

    我有一个 Maven 项目 它将使用许多 Web 服务 该应用程序将打包为 WAR 到目前为止 客户的代码已经生成cxf codegen plugin 在里面generate sources阶段 默认情况下 生成的源放入target gen
  • 创建 CXF Web 服务客户端时出现 ServiceConstructionException (scala+java+wsdl2java)

    这些其他问题暗示了解决方案 但我无法让它发挥作用 无法解析 http schemas xmlsoap org wsdl soap 的绑定 https stackoverflow com questions 26159206 could no
  • 使用默认值递归填写对象属性

    我想用一些虚拟数据填充对象的属性 这是我的代码 但它总是返回 null private static object InsertDummyValues object obj if obj null var properties obj Ge
  • Python @property 与方法性能 - 使用哪一个?

    我编写了一些使用对象属性的代码 class Foo def init self self bar baz myFoo Foo print myFoo bar 现在我想做一些花哨的计算来返回bar 我可以用 property使方法充当属性ba
  • 使用 jaxb 编组时使用派生类

    我有一个具有公共基类的对象列表 我尝试使用 jaxb 将其序列化为 XML 我希望在编组时使用派生类的注释 但我在实现这一点时遇到了麻烦 import java util Arrays import java util List impor
  • CXFServlet 抛出 java.lang.NoSuchMethodError:

    java lang NoSuchMethodError org codehaus stax2 ri EmptyIterator getInstance Lorg codehaus stax2 ri EmptyIterator at com
  • Xml 瞬态无法工作 jaxb(Moxy)。?

    Xml 瞬态注释不适用于以下模型 XmlRootElement public class JdfValidation private String name private String dataType private String er
  • 换肤时访问 hostComponent 的自定义属性 - Flex 4.5、SDK 4.5

    使用 SDK 4 1 我能够从自定义皮肤访问自定义按钮组件的自定义属性 我当前正在工作的项目需要 SDK 4 5 但我无法访问这些属性 这是一个例子 自定义按钮组件
  • 将 XML 转换为 Java 对象 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 一般如何处理 CXF 请求处理程序中的输入参数?

    我一直在使用 apache CXF 版本 2 2 2 JAX RS 进行一些工作 我试图在调用业务方法之前在 CXF 请求处理程序中引入数据验证层 幸运的是 我在请求处理程序 DataValidationHandler 中遇到输入参数处理问
  • 元标记内的属性 property="og:title" 是什么?

    我有网站源代码的摘录 这是做什么的属性属性代表什么 其目的是什么 og title是开放图元标签之一 og 属性定义社交图中的对象 例如 Facebook 使用它们 og title代表对象的标题 因为它应该出现在图表中 请参阅此处了解更多
  • CSS 3.0 用户选择属性替换

    我正在使用 CSS 3 0 它抱怨 用户选择 属性不存在 有谁知道合适的替代品或替代品是什么 user select is 回到规范 https drafts csswg org css ui 4 propdef user selectCS
  • JAXB 枚举字段未序列化

    我有以下课程 package dictionary import java io Serializable import java util Objects import javax xml bind annotation XmlEleme
  • Tomcat下的Spring CXF Soap Web服务:找不到服务

    我正在尝试使用 CXF 和 Spring 设置一个在 Tomcat 上运行的简单 CXF Web 服务 我有一个 Web 应用程序初始化程序来引导 CXF servlet public class WebAppInitializer ext
  • 使用 jQuery 更改 CSS 类属性

    有没有办法使用 jQuery 更改 CSS 类的属性 而不是元素属性 这是一个实际的例子 我有一个 div 类red red background red 我想转班级red背景属性 而不是具有类的元素red分配的背景 如果我用 jQuery
  • 如何让 C# 设计器编辑我的结构属性?

    我正在使用 C 创建一个具有多个自定义属性的自定义 Windows 窗体控件 这些属性之一是一个带有几个整数字段的简单结构 public struct Test public int A B Test Test Category MyCat

随机推荐