JAX-WS Soap 转换字符串...到列表<String>



我正在使用jaxws
在Java中创建Web服务我有以下接口WebMethod:

@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(String... args)而不是main(String[] args)

jax-ws使用仿制药,因此它将您的vararg参数转换为列表,因为它只是一个普通的数组。

如果您真的想使用数组(vararg(参数,则需要编写自己的适配器并使用@XmlJavaTypeAdapter(YourAdapter.class)进行注释,其中YourAdapter在其中扩展了XmlAdapter<List<String>, String[]>并覆盖Marshall和Unmarshall方法。我不确定这是否适用于参数(只记住它与返回值一起使用(,您必须对其进行测试,但是我建议仅使用列表参数。

相关内容

最新更新