使用Spring在Soap Web Service中将映射作为响应有效负载返回

问题描述

我在设置肥皂服务方面还很陌生,但我在建立spring.io肥皂服务示例以返回一个国家/地区的数据方面遇到了麻烦(在这里https://spring.io/guides/gs/producing-web-service/)。我想提出一个请求,要求返回目前正在回购中的所有国家/地区。

我的.xsd:

<xs:complexType name="getAllCountriesResponse">
    <xs:sequence>
        <xs:element name="Map">
            <xs:complexType>
                <xs:sequence>
                    <xs:element maxOccurs="unbounded" minOccurs="0" name="entry">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element minOccurs="0" name="key" type="xs:string"/>
                                <xs:element minOccurs="0" name="value" type="xs:string"/>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
    </xs:sequence>
</xs:complexType>

我的终点:

@PayloadRoot(namespace = NAMESPACE_URI,localPart = "getAllCountriesRequest")
@ResponsePayload
public GetAllCountriesResponse getAllCountriesResponse() {
    GetAllCountriesResponse response = new GetAllCountriesResponse();

    Map<String,Country> countries = countryRepository.findAllCountries();

    response.setMap(countries);

    return response;

}

我显然错过了一些关键的东西,但到目前为止还没有找到它。 我可以看到我正在提供一个期望有io.spring.guides.gs_production_web_service的地图,无论是什么……XD当我提供其他信息时,工具提示会告诉我它正在期待一张地图...

这是我的仓库中的内容

private static final Map<String,Country> countries = new HashMap<>();

...

public Map<String,Country> findAllCountries() {
    return countries;
}

您可以在此处找到包含我所有代码的存储库: https://github.com/H3AR7B3A7/SpringSoapServiceExample

解决方法

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

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

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