生成客户端wsimport两个对象之间的链接

问题描述 投票:0回答:1

我想使用wsimport maven插件从wsdl生成客户端存根,这很有效但有一个问题:我有两个对象应该链接到更远但是afetr这一代是donne,它不是完美的

<types>
    <xsd:schema elementFormDefault="qualified" targetNamespace="http://www.hello.com/ns/xsd/boba/restitution-restituerCarriereAvecValo.xsd">
      <xsd:import namespace="http://www.hello.com/holla/infosRetour.xsd" schemaLocation="xsd/infosRetour.xsd"/>


      <xsd:import namespace="http://www.hello.com/ns/wsdl/boba/messageRetourModuleValorisation.xsd" schemaLocation="xsd/messageRetourModuleValorisation.xsd"/>

      <xsd:element name="messageIn" type="xsd:anyType"/>
      <xsd:element name="messageOut">
        <xsd:complexType>
          <xsd:complexContent>
            <xsd:extension base="ir:infosRetour">
              <xsd:choice>
                <xsd:element name="messageRetour" type="xsd:anyType"/>
                <xsd:element name="rejetControleSyntaxiqueSemantique" type="xsd:anyType"/>
                <xsd:element name="rejetControleIdentification" type="xsd:anyType"/>
              </xsd:choice>
            </xsd:extension>
          </xsd:complexContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:schema>
  </types>

在这里我的对象qazxsw poi应该有messageOut类的字段qazxsw poi,但是当我看到我的类messageRetour时,这个字段被设置为Object而不是montioned类。

messageRetour

正如你在这里看到的是生成的子类,你可以看到有一个名为messageOut的类

@XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "", propOrder = { "messageRetour", "rejetControleSyntaxiqueSemantique", "rejetControleIdentification" }) @XmlRootElement(name = "messageOut") public class MessageOut extends InfosRetour { protected Object messageRetour; protected Object rejetControleSyntaxiqueSemantique; protected Object rejetControleIdentification;

我如何更改此类型作为一个类而不是作为对象?

甚至当我改变这条线qazxsw poi到qazxsw poi我得到同样的问题总是对象而不是一个类

java xml xsd wsdl wsimport
1个回答
0
投票

你得到messageRetour因为enter image description here类型。

您应该将<xsd:element name="messageRetour" type="xsd:anyType"/>的类型更改为<xsd:element name="messageRetour"/>类型。

此类型可能由您导入的其中一个模式提供。我不确定具体名称,可能是Objectxsd:anyType<xsd:element name="messageRetour" type="xsd:anyType"/>,类似的东西。所以它可能是这样的:

messageRetour

如果类型由其他导入的模式提供,则可能需要首先声明名称空间前缀(如MessageRetour),然后使用messageRetour作为类型。

© www.soinside.com 2019 - 2024. All rights reserved.