gpt4 book ai didi

java - JAX-WS Soap 将 String... 转换为 List

转载 作者:行者123 更新时间:2023-12-02 13:19:03 24 4
gpt4 key购买 nike

我正在使用 JAXWS 在 Java 中创建 WebService
我有以下接口(interface)网络方法:

@WebMethod
public boolean check(String... p);

当我构建并运行项目时,Web 服务引用函数如下所示:

public boolean check(
@WebParam(name = "arg0", targetNamespace = "")
List<String> arg0)
throws IllegalAccessException_Exception,
InvocationTargetException_Exception,
NoSuchMethodException_Exception;

String...被替换为List<String>
现在我的问题是:

如何防止 JAXWS 将我的参数从 String... 转换至List<String>

最佳答案

String... (varargs) 内部基本上是数组,唯一的区别是调用它的代码。就像在 main 方法中一样,你可以写 main(String... args)而不是main(String[] args) .

JAX-WS 使用泛型,因此它将您的 vararg 参数转换为列表,因为它只是一个普通数组。

如果您确实想使用数组(vararg)参数,那么您需要编写自己的适配器并使用 @XmlJavaTypeAdapter(YourAdapter.class) 注释参数。哪里YourAdapter扩展 XmlAdapter<List<String>, String[]>并重写 marshall 和 unmarshall 方法。我不确定这是否适用于参数(只记得它适用于返回值),您必须测试它,但我建议只使用列表参数。

关于java - JAX-WS Soap 将 String... 转换为 List<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43660594/

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