使用GET使用数组参数调用JAX-WS Web服务

时间:2011-10-27 20:01:09

标签: java web-services jax-ws cxf

我有一个名为“diagnosticPing”的CXF JAX-WS Web服务操作,它接受两个参数,一个int和一个String []数组。来自wsdl:

<xs:element name="depth" type="xs:int"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="instructions" type="xs:string"/>

我想尝试直接从浏览器调用此操作,因为这将是一种“ping”服务而不需要像SoapUI这样的工具的有用方法。但是,我无法弄清楚如何构造我的查询字符串,以便服务将识别String []数组参数。我最好的尝试是这样的:

  

https://hostname/ServiceUri/service/diagnosticPing?depth=2&instructions=%22accountType%3DABC%22,%22action%3DgetDetails%22,%22version%3D1.0%22}

但是我收到了这样的错误:

  调用public java.util.List时,

参数类型不匹配   ca.gwl.group.account.service.routing.AccountServiceRouter.diagnosticPing(int,java.lang.String [])with params [2,{“accountType = ABC”,“action = getDetails”,“version = 1.0”} ]

有没有人知道如何使用将被接受为String数组的查询字符串参数来调用Web服务?

1 个答案:

答案 0 :(得分:1)

看起来没有办法。如果你想看一下,你可以深入研究CXF URIMappingInterceptor。那里有一种方法叫做:

private Object readType(String value, Class type)

需要更新才能处理集合和数组。欢迎补丁。

: - )