代码之家  ›  专栏  ›  技术社区  ›  Feres.o

在两个对象之间生成客户端wsimport未命中链接

  •  0
  • Feres.o  · 技术社区  · 6 年前

    我想用wsimport-maven插件从wsdl生成客户端存根,这很好,但有一个问题:我有两个应该链接在一起的对象,但如果生成的是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>
    

    这是我的目标 messageOut 应该有一块地 messageRetour 的类型 messageRetour消息 班级,但当我看到我的班级 消息输出 此字段设置为Object,而不是montioned类。

     @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;
    

    正如您在这里看到的,这里是生成的子类,您可以看到有一个名为 messageRetour消息

    enter image description here

    如何将此类型更改为设置为类而不是对象?

    即使我改变了这条线 <xsd:element name="messageRetour" type="xsd:anyType"/> <xsd:element name="messageRetour"/> 我也有同样的问题总是反对而不是一个类

    1 回复  |  直到 6 年前
        1
  •  0
  •   lexicore    6 年前

    你得到 Object 因为 xsd:anyType 作为类型。

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

    这种类型可能由您导入的模式之一提供。我不确定具体的名字,可能是 MessageRetour messageRetour消息 message-retour ,差不多吧。所以它可能是这样的:

    <xsd:element name="messageRetour" type="ir:messageRetour"/>
    

    如果类型是由其他导入的模式提供的,则可能需要首先声明名称空间前缀(如 xmlns:mrmv="http://www.hello.com/ns/wsdl/boba/messageRetourModuleValorisation.xsd" )然后使用 mrmv:messageRetour 作为类型。