当前位置: 首页 > 面试题库 >

com.sun.istack.SAXException2:实例…替代“ java.lang.Object”,但…绑定到匿名类型

南宫凡
2023-03-14
问题内容

我正在将项目从版本1.x升级到jaxb 2.2.7。

我有一段时间会运行该应用程序,但是在一些响应中我看到了这一点:

java.lang.RuntimeException: javax.xml.bind.MarshalException
- with linked exception:
[com.sun.istack.SAXException2: Instance of "com.mycompany.global.er.decoupling.binding.response.PricePointType$BalanceImpactRates$BalanceImpactRate" 
is substituting "java.lang.Object", but 
"com.mycompany.global.er.decoupling.binding.response.PricePointType$BalanceImpactRates$BalanceImpactRate"
 is bound to an anonymous type.]

在jaxb 1.0中运行良好。我不知道可能是什么问题。

这是xsd的摘录(我不能更改,因为客户端正在使用它):

<xs:complexType name="price-pointType">
    <xs:sequence>
        <xs:element name="id" type="xs:string" />
.........
        <xs:element name="duration" type="durationType" />
        <xs:element name="order" type="xs:int" />
        <xs:element name="min-sub-period" type="xs:int" />
        <xs:element name="balance-impacts" minOccurs="0">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="balance-impact" type="charging-resourceType"
                        minOccurs="0" maxOccurs="unbounded" />
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="balance-impact-rates" minOccurs="0">
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="balance-impact-rate" minOccurs="0"
                        maxOccurs="unbounded">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="rate" type="xs:double" />
                            </xs:sequence>
                            <xs:attribute name="charging-resource-code" type="xs:string"
                                use="required" />
                        </xs:complexType>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>

有什么建议?


问题答案:

问题原来是匿名复杂类型的精心嵌套

通过如下将它们分开,问题就解决了。另外,我获得了更多可重用的代码。

    <xs:complexType name="balanceImpactRate">
    <xs:sequence>
        <xs:element name="rate" type="xs:double" />
    </xs:sequence>
    <xs:attribute name="charging-resource-code" type="xs:string"
    use="required" />

</xs:complexType>


<xs:complexType name="balanceImpactRates" >
    <xs:sequence>
        <xs:element name="balance-impact-rate" type="balanceImpactRate"   minOccurs="0"
            maxOccurs="unbounded">
        </xs:element>
    </xs:sequence>
</xs:complexType>


 类似资料:
  • 本文向大家介绍Java匿名类,匿名内部类实例分析,包括了Java匿名类,匿名内部类实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java匿名类,匿名内部类。分享给大家供大家参考,具体如下: 内部类 匿名类  首发日期 :2018-03-25 内部类: 在一个类中定义另一个类,这样定义的类称为内部类。【包含内部类的类可以称为内部类的外部类】 如果想要通过一个类来使用另一个类,可以定

  • 在以下片段中: 有没有办法从内部匿名类引用匿名类的外部实例? 第二个错误是在解决方案上,我在这里找到了一个匿名内部类的外部类的关键字。这些问题似乎共享一些概念和问题空间,但性质不同。

  • 本文向大家介绍Javascript 实现匿名递归的实例代码,包括了Javascript 实现匿名递归的实例代码的使用技巧和注意事项,需要的朋友参考一下 递归是一种常见的编程技巧,实名递归相信大家都不陌生,但如果想要实现匿名递归呢?比如想要返回一个匿名递归函数,又或者是定义一个匿名递归函数并直接调用它,该怎样去做呢?本文将来探讨一下它的实现。 实名递归 我们还是先从实名递归说起吧,还是用那个最简单的

  • 可能重复: 什么是双大括号初始化在Java? 在查看一些遗留代码时,我遇到了一些非常令人困惑的问题: 在调试模式下运行代码后,我发现匿名块是在调用构造函数之后调用的。上面的功能和做的有什么不同: ?我会认为它们在功能上是等价的,并且会认为后一种方式是更好/更干净的编写代码的方式。

  • 我有一个JAVA应用程序,它使用未绑定的LDAP SDK连接LDAP本地服务器并进行身份验证 该服务器是带有Active Directory的Windows server 2008 R2,配置为不允许匿名身份验证 但是如果我尝试使用我的应用程序执行匿名绑定,那么BindResult就会成功。我正在使用JAVADOC所说的SimpleBindRequest()方法进行连接。这是我的代码: 我试图使用

  • 问题内容: 在ES6中,我们可以进行匿名类: 但是我们也可以实例化它: 它背后的工作是什么,它将带来什么优势以及它也会带来什么警告? 问题答案: 匿名类实例-这是一个坏主意吗? 每次评估表达式时,这种书写风格都会导致创建新的构造函数和原型对象。如果使用这种方法创建多个对象,则它们将不会获得类/原型的任何好处。 如果您打算使用此模式创建单例对象,那么您也会失败。构造函数仍然可以创建,甚至可以访问-使