вызов веб-службы JAX-WS с параметром массива с помощью GET - PullRequest
0 голосов
/ 28 октября 2011

У меня есть операция веб-службы CXF JAX-WS под названием «Diagnosting», которая принимает два параметра, массив int и String [].Из wsdl:

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

Я хотел бы попытаться вызвать эту операцию напрямую из браузера, так как это было бы полезным способом «пропинговать» службу без необходимости использования такого инструмента, как 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 []) с параметрами [2, {"accountType = ABC", "action = getDetails","version = 1.0"}].

Кто-нибудь знает, как вызвать веб-сервис с параметром строки запроса, который будет принят как массив строк?

1 Ответ

1 голос
/ 28 октября 2011

Не похоже, что есть способ.Если вы хотите посмотреть на это, вы можете покопаться в CXF URIMappingInterceptor.Там есть метод, который называется:

private Object readType(String value, Class type)

, который необходимо обновить для обработки коллекций и массивов.Патчи приветствуются.

: -)

...