JAX-WS Soap 将 String... 转换为 List<String>
JAX-WS Soap converts String... to List<String>
我正在使用 JAXWS
在 Java 中创建 WebService
我有以下界面 web 方法:
@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 使用泛型,这就是为什么它将可变参数转换为列表的原因,因为它只是一个普通数组。
如果你真的想使用数组(可变参数)参数,那么你需要编写自己的适配器并用 @XmlJavaTypeAdapter(YourAdapter.class)
注释参数,其中 YourAdapter
扩展 XmlAdapter<List<String>, String[]>
并覆盖marshall 和 unmarshall 方法。我不确定这是否适用于参数(只记得它适用于 return 值),您必须对其进行测试,但我建议只使用列表参数。
我正在使用 JAXWS
在 Java 中创建 WebService
我有以下界面 web 方法:
@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 使用泛型,这就是为什么它将可变参数转换为列表的原因,因为它只是一个普通数组。
如果你真的想使用数组(可变参数)参数,那么你需要编写自己的适配器并用 @XmlJavaTypeAdapter(YourAdapter.class)
注释参数,其中 YourAdapter
扩展 XmlAdapter<List<String>, String[]>
并覆盖marshall 和 unmarshall 方法。我不确定这是否适用于参数(只记得它适用于 return 值),您必须对其进行测试,但我建议只使用列表参数。