Вызовите веб-сервис из https и проанализируйте ответные XML-данные в Java - PullRequest
0 голосов
/ 12 марта 2010

Мне нужно подключиться по URL-адресу https, отправить схему запроса, и я получу ответ xml от веб-службы.

Для соединения через https я использую:

URL myurl = new URL(httpsURL);
                HttpsURLConnection con = (HttpsURLConnection)myurl.openConnection();
                con.setDoOutput(true);
                con.setDoInput(true);
                con.setUseCaches(false);
    con.setRequestProperty("Content-type","text/xml");

Итак, из приведенного выше кода я получаю ответный XML с сервера. Теперь мой вопрос: какой синтаксический анализатор мне лучше всего подойдет для анализа полученных XML-данных в моем простом Java-объекте.

Я много на это смотрел и получал различные решения, но я путаюсь с выбором подходящего.

Если у кого-нибудь есть предложение с примером, пожалуйста, предоставьте ..

Заранее спасибо ...

РЕДАКТИРОВАТЬ : выше https ответ не является мылом

Ответы [ 4 ]

2 голосов
/ 12 марта 2010
1 голос
/ 12 марта 2010

Если это SOAP-сервис, вам следует использовать клиентский API-интерфейс SOAP вместо Spring-WS или JAX-WS.

0 голосов
/ 29 июля 2010

Я бы посоветовал взглянуть на Castor (http://www.castor.org/xml-mapping.html) - это чрезвычайно простой способ сопоставить XML с POJO. Он генерирует классы Java на основе вашей XML-схемы (в вашем случае файл WSDL).

Когда вы закончите анализ, ответ так же прост:

StringReader sr = new StringReader(inMessageString);
YourSoapResponse response = (YourSoapResponse)Unmarshaller.unmarshal(YourSoapResponse.class, sr);

Castor является относительно быстрым (после того, как он прогрелся), но если ваш XML-ответ "огромен", вам, возможно, придется пересмотреть и использовать Stax (например, http://stax.codehaus.org/Home).

0 голосов
/ 12 марта 2010

Для этого мы используем библиотеку Metro, которая требует Java 1.5 и включена в Java 6.

Затем вы получите дерево DOM для результата, которое затем можно легко обработать.

Мы использовали IntelliJ IDEA для преобразования WSDL в исходный код Java с использованием Metro.

...