Генерация клиента Webservice - заглушки против сообщений Soap - PullRequest
1 голос
/ 26 марта 2019

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

Мне дали URL для wsdl Если я создаю заглушки, я использую функциональность этого веб-сервиса Я генерирую заглушки 3 различными способами - (некоторые излишние) - Затмение - Ant команды (создает ту же структуру, что и с затмением) - с использованием Maven

<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxws-maven-plugin</artifactId>

maven создает немного другой API, но - все работоспособно.

Теперь мне дали URL-адрес, я также генерирую API и могу позвонить, однако получаю сообщение об ошибке - ошибка зависит от системы. Это означает, что у меня есть связь с функциональностью веб-сервиса.

Итак, владельцы веб-сервиса присылают мне пример кода - они используют сообщения SOAP для общения с веб-сервисом. И это прекрасно работает.

// Create SOAP Connection
            SOAPConnectionFactory soapConnectionFactory = null;
            SOAPConnection soapConnection = null;
            soapConnectionFactory = SOAPConnectionFactory.newInstance();
            soapConnection = soapConnectionFactory.createConnection();

            System.setProperty("https.protocols", 
             "TLSv1,TLSv1.1,TLSv1.2");
            System.setProperty("java.net.useSystemProxies", "true");

            String url = "https://someUrl?wsdl";
            SOAPMessage soapResponse = 
            soapConnection.call(createSOAPRequest(), url);

            // Process the SOAP Response
            try { 
                String op = printSOAPResponse(soapResponse);
                System.out.println("Res" +op);
            } catch (Exception e) {
                e.printStackTrace();
            }

Я знаю, что это не очень надежный и простой способ работы с веб-сервисами. Итак, я должен заставить владельцев веб-сервисов что-то сделать, чтобы исправить проблему, или я что-то не добавляю в свои заглушки, или что-то еще может пойти не так?

Какой общий совет вы могли бы дать?

Спасибо

1 Ответ

0 голосов
/ 05 апреля 2019

Отказ от ответственности: Это основанный на мнении ответ из-за характера вопроса.

если я заставлю владельцев веб-сервисов что-то сделать, чтобы исправить проблему, или я что-то не добавляю в мои заглушки, или что-то еще здесь может пойти не так

В SOAP участвуют две стороны: сервер и клиент. И тогда между ними есть договор, который называется WSDL. Таким образом, если они предоставили вам WSDL, вы должны иметь возможность генерировать конкретное сообщение SOAP, которое сервер должен уметь понимать. Следовательно, вы пытаетесь решить проблему на стороне клиента, не заставляя их. Я менее уверен в вашем фактическом сценарии использования и службах SOAP, которые вы пытаетесь использовать, но обычно поставщики услуг (т. Е. Службы SOAP) придерживаются протоколов, а затем клиенты должны настраиваться, чтобы использовать эту конкретную службу, если только вы не слишком большой клиент для них и может заставить их изменить свою систему, которая может обслуживать других клиентов (клиенты SOAP). Например, если вы используете сервис Azure или SAP SOAP для использования определенного сервиса, вы обязаны делать сообщения, которые Azure или SAP могут понять (хотя такие крупные игроки предоставляют свой SDK для работы такие ненужные головные боли).

...