Java JAX-WS Soap转换字符串。。。列出<;字符串>;
我正在使用JAXWS在Java中创建一个Web服务Java JAX-WS Soap转换字符串。。。列出<;字符串>;,java,web-services,jsp,soap,jax-ws,Java,Web Services,Jsp,Soap,Jax Ws,我正在使用JAXWS在Java中创建一个Web服务 我有以下接口webmethod: @WebMethod public boolean check(String... p); 当我构建并运行项目时,web服务引用函数是这样的: public boolean check( @WebParam(name = "arg0", targetNamespace = "") List<String> arg0) throws I
我有以下接口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;
公共布尔检查(
@WebParam(name=“arg0”,targetNamespace=”“)
列表(arg0)
抛出IllegalAccessException\u异常,
InvocationTargetException_异常,
NoSuchMethodException_Exception;
字符串…
已替换为列表
现在我的问题是: 如何防止JAXWS将参数从
String…
转换为List
String…
(varargs)基本上是内部数组,唯一的区别是调用它的代码。与main方法一样,您可以编写main(String…args)
而不是main(String[]args)
JAX-WS使用泛型,这就是为什么它将vararg参数转换为list,因为它只是一个普通数组
如果确实要使用数组(vararg)参数,则需要编写自己的适配器,并使用
@XmlJavaTypeAdapter(YourAdapter.class)
注释参数,其中YourAdapter
扩展XmlAdapter
并重写marshall和unmarshall方法。我不确定这是否适用于参数(只记得它适用于返回值),您必须对其进行测试,但我建议只使用列表参数。您还希望它转换为什么?只需保留它String…
如果我尝试使用多个字符串作为参数调用函数,则会出现错误。(varargs)您是否愿意共享失败的示例代码来调用该函数?