Веб-служба SOAP - Java-сервер - клиент iOS - SudzC отправляет или получает большие файлы

Моя система:

Сервер: Java Soap Web Service, сгенерированная JAX WS 2.2.3 (-wsgen)

Клиент: iOS - Soap Web Service, созданная SudzC


Я использую SudzC на iOS для связи с веб-сервисом Java. Я хочу загрузить файлы NSData с клиента iOS на сервер Java или загрузить файлы byte[] с сервера Java на клиент. Для небольших объемов данных веб-служба работает нормально, но когда объем данных превышает 4 МБ, возникают проблемы. Если я отправляю файл размером более 4 МБ, возникает внутренняя ошибка HTTP 500, или все застревает, и мое приложение вылетает.

Какие-либо предложения? Может быть, я должен попробовать что-то еще, кроме SudzC?

Я знаю, что для отправки и получения больших файлов у SOAP есть возможность под названием MTOM. Это извлекает данные base64Binary из сообщения SOAP и упаковывает их в виде отдельных двоичных http-вложений в сообщении MIME, аналогично вложениям электронной почты. Итак, моя проблема в том, как я могу реализовать эту опцию на программном коде Objective-C, созданном клиентом iOS. На стороне java-сервера опция MTOM активирована, но на iOS-клиенте я должен реализовать эту опцию?!

Возможно, кто-то может помочь?

2 ответа

Я использую WSClient++ для генерации классов и никогда не было проблем.

http://wsclient.neurospeech.com/

Я не люблю SudzC, у меня возникают проблемы, когда в XML return есть список списка.

Я использовал SudzC для загрузки файлов большего размера (20 + мегабайт), поэтому проблема, вероятно, не в SudzC. Я помню, как у меня возникла проблема с загрузкой файлов в начале: сервер не принимал ничего за X байтов и возвращал ошибку.

Однако, я видел, что у sudzC много проблем с памятью при загрузке больших файлов, поэтому я перешел на wsdl2objc для загрузки файлов

Другие вопросы по тегам