gpt4 book ai didi

java - 更改 SOAP 服务 (JAX-WS/METRO) 中的 Bean 表示

转载 作者:行者123 更新时间:2023-12-01 05:19:26 26 4
gpt4 key购买 nike

我有这个类(class)颜色:

public class Color {

private String name;
private List<String> usedInShapes;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public List<String> getUsedInShapes() {
if (usedInShapes== null) {
return null;
}
return new ArrayList<String>(usedInShapes);
}
}

并返回此 bean 在具有 Color 对象列表的包装器上返回

public class ColorListResponse {

private final List<Color > colorList;

@XmlElement(required=true)
public List<Color> getColorList() {
return colorList;
}
}

当调用该方法时,用户会得到如下响应

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:getColorsResponse xmlns:ns2="http://example.com/ws">
<return>
<colorList>
<name>YELLOW</name>
</colorList>
<colorList>
<name>BLUE</name>
</colorList>
<colorList>
<name>RED</name>
</colorList>
<colorList>
<name>BROWN</name>
</colorList>
</return>
</ns2:getColorsResponse>
</S:Body>
</S:Envelope>

我需要的是这样的:

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:getColorsResponse xmlns:ns2="http://example.com/ws">
<return>
<colorList>YELLOW</colorList>
<colorList>BLUE</colorList>
<colorList>RED</colorList>
<colorList>BROWN</colorList>
</return>
</ns2:getColorsResponse>
</S:Body>
</S:Envelope>

我一直在尝试修改注释,但没有成功......

最佳答案

您无法让该工具写入此类响应。要完成此任务,您必须编写自己的实现来编码/取消编码 XML。默认情况下,该工具使用类类型及其内部属性生成 XML。

public class Color {
private String name;
}

此外,您的方法返回 List<Vendor>不是List<Color> .

关于java - 更改 SOAP 服务 (JAX-WS/METRO) 中的 Bean 表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10657535/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com