LINUX.ORG.RU

Это

В джоб.

anonymous
()

Необходимо реализовать на java

ТЗ примерно понятно. А сколько платите?

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 1)

Если таких запросов будет не очень много, я советую следующий подход:

Скачай SoapUI, сделай новый SOAP-проект, укажи ему этот URL как WSDL.

Он сгенерирует тебе примеры запросов. Убедись, что всё работает. Там и увидишь, как выглядят запросы и ответы.

Потом через обычный API составь нужный XML-документ с нужными параметрами и отправь его обычным же API через HTTP POST (возможно с нужным заголовком SoapAction). Ответ распарсь и вытащи нужную тебе информацию.

С таким подходом код будет понятным и не нужно никаких зависимостей, размер приложения будет небольшой.

Если таких запросов будет много и вручную это всё делать не хочется - подключай библиотеки. В мире Java стандарт де факто это JAX-WS, он даже в JDK встроен. Насчёт Android не знаю, в Android Java поддельная, но отдельной зависимостью скорей всего подключить получится.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от Legioner

С таким подходом код будет понятным и не нужно никаких зависимостей, размер приложения будет небольшой.

Уже попробовал. Поверх http отправлял xml(формат soap) - ответ status code 500, 502. Доступа к логам нет, почему такой статус неизвестно

Насчёт Android не знаю, в Android Java поддельная, но отдельной зависимостью скорей всего подключить получится.

Вот по этому и хочется разобраться в чем дело, дело в сервисе(в http-заголовках) или в самой java на android.

P.S. кстати через soapui - все работает

Booker
() автор топика
Ответ на: комментарий от Legioner

Увы, нет. В андроиде нет кучи базовых классов, которые нужны библиотекам, нет поддержки части аннотаций, да дофига всего нет.

Если очень надо SOAP, то либо ручками, либо ksoap2. С либой немного проще, но писал её аутист, так что весь выигрыш по времени сожрёт борьба с её костылями.

anonymous
()
Ответ на: комментарий от Booker

Уже попробовал. Поверх http отправлял xml(формат soap) - ответ status code 500, 502. Доступа к логам нет, почему такой статус неизвестно

Заголовок SoapAction проставил? В XML точно ничего не напутал?

Вот по этому и хочется разобраться в чем дело, дело в сервисе(в http-заголовках) или в самой java на android.

А при чём тут Java? Байты везде одинаковые. Можешь для начала взять рабочий текст запроса из SoapUI, как есть прям, сохранить в файл в проекте и его просто по байтам отправлять в POST. А дальше уже «пляши».

P.S. кстати через soapui - все работает

Там можно посмотреть прям весь запрос, как отправляется, включая HTTP заголовки. Проверь.

Ещё, кстати, в SoapUI есть полезная опция - mock. Т.е. можешь запустить SOAP-сервер прям у себя и прописать, что на этот запрос отвечать этим ответом. Там уже будут нормальные сообщения об ошибке. Можно попробовать так отладиться.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от Legioner

Заголовок SoapAction проставил? В XML точно ничего не напутал?

Да

Там можно посмотреть прям весь запрос, как отправляется, включая HTTP заголовки. Проверь.

Уже проверял. Поэтому и прошу еще один рабочий пример для сравнения.

А при чём тут Java? Байты везде одинаковые. Можешь для начала взять рабочий текст запроса из SoapUI, как есть прям, сохранить в файл в проекте и его просто по байтам отправлять в POST. А дальше уже «пляши».

Без «велосипеда» было лучше.. Можно конечно и попробовать…

Booker
() автор топика
Ответ на: комментарий от Anoxemian

предлагаешь запретить писать не говноедские комментарии?

anonymous
()
Ответ на: комментарий от Legioner

А при чём тут Java? Байты везде одинаковые. Можешь для начала взять рабочий текст запроса из SoapUI, как есть прям, сохранить в файл в проекте и его просто по байтам отправлять в POST. А дальше уже «пляши».

Java при том, что нужно разработать мобильное приложение, а кроме Java и Android Studio(для мобилок) я не знаю. Новые языки и технологии изучать не аргумент!

Кстати, в отдельном файле не сохранял, но в коде - это я и делал, после пришел на форум!

Booker
() автор топика
Ответ на: комментарий от bvn13

Ещё раз, в андроиде урезанный набор стандартных библиотек и урезанная поддержка аннотаций. По сути, всё, что не нужно для отрисовки кидания птиц в свиней, оттуда вырезано.

Ни jax-ws, ни saaj работать не будут. Здесь, как минимум, тупо нет javax.xml.*, на утилиты из которого полагаются все «взрослые» решения.

anonymous
()
Ответ на: комментарий от anonymous

Ещё раз, в андроиде урезанный набор стандартных библиотек и урезанная поддержка аннотаций. По сути, всё, что не нужно для отрисовки кидания птиц в свиней, оттуда вырезано.

Ни jax-ws, ни saaj работать не будут. Здесь, как минимум, тупо нет javax.xml.*, на утилиты из которого полагаются все «взрослые» решения.

Да! Полностью согласен! Однако решение было найдено(библиотека, которая выполняет данные функции). В ответ начал получать кошерные xml-ответы, в формате soap.

Остался последний шаг - нужно разобрать полученный xml в формате soap. Есть ли надежно работающая библиотека под андроид для данных целей и что если использовать regex ?

Требумо советы опытных собаководов!

Booker
() автор топика

Попробуй apache cxf, оно конечно не фонтан, но если андроид не умеет в jax-ws то в поле и жук - мясо.

ya-betmen ★★★★★
()
Последнее исправление: ya-betmen (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.