Хорошая практика для реализации клиентов SOAP в JAVA для очень длинных запросов? - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь следить за этим сообщением .

Чтобы воспроизвести пример запроса XML, который у меня есть.Проблема в том, что этот конкретный запрос довольно длинный с очень глубокой структурой, и я просто устал от добавления дочерних элементов и отслеживания структуры своими глазами.

Ниже приведен пример кода, который суммировал то, что я делал.Воспроизводимый запрос содержит не менее 5 слоев и более 50 элементов.Предполагается, что это будет форма заявки, в которой будет содержаться личная информация кандидатов.

// SOAP Envelop...
// SOAP Body
        SOAPBody soapBody = envelope.getBody();
        SOAPElement aaa = soapBody.addChildElement("aaaName", "", "http://my.uri.aaa");
        SOAPElement bbb = aaa.addChildElement("bbbName", "", "http://my.uri.bbb");
        SOAPElement ccc = bbb.addChildElement("cccName");
        SOAPElement ddd = ccc.addChildElement("dddName");

        //... and so on ...        

        SOAPElement dddChild1 = ddd.addChildElement("dddChild1Name");
        dddChild1.addTextNode("I'm dddChild1");
        SOAPElement dddChild2 = ddd.addChildElement("dddChild2Name");
        SOAPElement dddGrandChild2 = dddChild2.addChildElement("dddGrandChild2Name");
        dddGrandChild2.addTextNode("I'm dddGrandChild2");

        //... and so on ...

Может ли кто-нибудь дать совет, как сделать его немного проще для конструирования / чтения / управления?

1 Ответ

0 голосов
/ 19 сентября 2019

Если ваш запрос такой большой, я бы порекомендовал создать объекты Java из WSDL или XSD, а затем использовать JAXB для маршалинга объектов Java в XML.

У Mkyong есть простой пример JAXB: https://www.mkyong.com/java/jaxb-hello-world-example/

Примечание. Вам придется создавать экземпляры и заполнять объекты, но я думаю, что управлять им будет проще, чем сейчас.

Если выИспользуя Eclipse, вы можете сгенерировать объекты, используя шаги, описанные в этом ответе: Генерация Java-класса веб-службы из WSDL в eclipse

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...