我正在使用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方法。我不确定这是否适用于参数(只记住它与返回值一起使用(,您必须对其进行测试,但是我建议仅使用列表参数。