JAX-WS webservice aanroepen met array-parameter met GET

Ik heb een CXF JAX-WS-webservicewerking genaamd "diagnosticing" die twee parameters params, een int en een reeks [] accepteert. Van de wsdl:



Ik zou graag proberen om deze bewerking rechtstreeks vanuit een browser aan te roepen, omdat dit een handige manier zou zijn om de service te "pingen" zonder een tool zoals SoapUI. Ik kan echter niet achterhalen hoe mijn queryreeks moet worden geconstrueerd, zodat de service de reeksparameter String [] zal herkennen. Mijn beste poging was zoiets als:

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

Maar ik kreeg een fout zoals:

argumenttype komt niet overeen terwijl openbare java.util.List wordt opgeroepen   ca.gwl.group.account.service.routing.AccountServiceRouter.diagnosticPing (int, java.lang.String []) met params [2, {"accountType = ABC", "action = getDetails", "version = 1.0"} ].

Heeft iemand enig idee hoe de webservice moet worden opgeroepen met een query-stringparameter die wordt geaccepteerd als een String-array?

0
Houd er rekening mee dat dit slechts een array met één dimensie is, d.w.z. een java.lang.String []
toegevoegd de auteur Michael Lucas, de bron

1 antwoord

Het ziet er niet naar uit dat er een manier is. Als je ernaar wilt kijken, kun je de CXF URIMappingInterceptor gebruiken. Er is daar een methode genaamd:

private Object readType(String value, Class type)

dat zou moeten worden bijgewerkt om collecties en arrays te verwerken. Patches zijn welkom.

:-)

1
toegevoegd
Kan het ook worden gedaan door een aangepaste interceptor te maken en deze op het noodzakelijke punt in de ketting te plaatsen? Dit kan een leuke manier zijn om deze functionaliteit in mijn zakelijke app op te nemen en te testen zonder CXF te hoeven patchen, hoewel ik de patch later graag wil bijdragen. Maar ik weet niet zeker hoe haalbaar een aangepaste interceptor is om dit op te lossen (alleen gedaan basismateriaal met CXF).
toegevoegd de auteur Michael Lucas, de bron