Я пишу клиент WS с cxf, и у меня большая структура ответов (1500+ классов). Мне нужна только примерно половина данных из ответа, но она находится внутри N-го уровня.
Я устал проверять каждый уровень, пример:
<response>
<wrapper>
<databaseObject>
<living>
<person>
<personName>
<databaseObject>
...
в коде:
wrapper = response.getWrapper();
if(wrapper!=null){
databaseObject = wrapper.getDatabaseObject();
if(databaseObject!=null){
living = databaseObject.getLiving();
... etc ...
Я искал какой-нибудь быстрый (кодирующий) способ доступа к последнему уровню, например, как XPAth:
obj = searchedFunction(response,"/wrapper/databaseObject/living/person/personName/databaseObject");
и я возвращаю объект, если он есть, или ноль, если какой-либо родительский объект отсутствует.
ответ генерируется с помощью wsdl2java apache cxf, а клиент ws является прокси-клиентом cxf.
Thanx