Java SOAP WebService:如何将WSDL上方法的字符串数组用作输入?

问题描述

我正在开发Java 1.6版本的WebService SOAP(客户基础设施的约束),并且我需要开发一种操作方法,该方法将具有String和String数组的纯对象作为输入,并返回输出(经过详细说明)。它由字符串 codiceFiscale 组成的输入对象,字符串数组是您在代码示例中看到的名为 classificazioni 的字段:

我在WSDL上遇到这种情况:

<complexType name="VerificaClassiPFInputDTO">
            <sequence>
                <element name="codiceFiscale" nillable="true" type="xsd:string" />
                <element name="classificazioni" type="xsd:string" nillable="true"
                    minOccurs="0" maxOccurs="unbounded" />
            </sequence>
        </complexType>

这是我的INPUT DTO(java端):

public class VerificaClassiPFInputDTO implements Serializable {


private static final long serialVersionUID = -3933923831884051815L;

/**
 * Codice Fiscale della PF
 */
private String codiceFiscale = "";
/**
 * Array di classificazioni da processare sul codice fiscale passato
 */
private String[] classificazioni = null;

/**
 * Costruttore default
 */
public VerificaClassiPFInputDTO() {
    super();
}

public String getCodiceFiscale() {
    return codiceFiscale;
}

public void setCodiceFiscale(String codiceFiscale) {
    this.codiceFiscale = codiceFiscale;
}

public String[] getClassificazioni() {
    return classificazioni;
}

public void setClassificazioni(String[] classificazioni) {
    this.classificazioni = classificazioni;
}

那个String []是我的数组。当我在SOAPUI客户端中部署WS时,这种方法的情况是

enter image description here

对我来说是正确的。我想要“ 0 on more”字符串作为该字段在该数组中的输入。在这种情况下,数组中有三个String,另一个 codiceFiscale

即使在IBM RAD Web Service Explorer工具中,情况也是如此:

enter image description here

所以,对我来说还可以。但是,当我(在数组中)传递更多字符串时,仅处理了最后一个字符串

enter image description here

代码中,当我处理输入时,我总是得到 1长度的String数组,最后一个

enter image description here

那么,怎么了? 如何在WSDL,DTO等中映射该类型的输入?为什么会发生这种情况?

如果我在DTO中输入类型

from String[] to List<String> classificazioni

不执行该操作,在运行时以格式表示不匹配类型,我尝试调用方法

请有人可以帮助我吗?如果我必须在WSDL和DTO中进行相应的更改,那不是问题,而是如何?

我应该将WSDL中的什么作为 complextype 并因此在DTO中放入,以便获得这种输入?

请帮助我....我快疯了:(

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)