Я программист на Python, у нас есть интерфейс python для веб-проекта, где мы используем веб-сервер Python (Tornado), чтобы предлагать веб-службы REST.Expose SOAP 1.2 веб-сервис из java, который вызывает другую службу REST
Несколько месяцев назад нас попросили предложить SOAP для клиента, и, к нашему удивлению, Python 3 имеет очень слабые возможности отображения SOAP. Мы попробовали Ladon
& TornadoWS
пакеты, но оба имеют свои ограничения. Даже некоторые из них генерируют недействительный ответ, который не соответствует соответствующему WSDL.
Итак, теперь я думаю, что лучший способ - сделать SOAP-интерфейс с Java, который будет потреблять наш веб-сервис Python. У меня есть некоторый опыт работы на Java, но в основном это была структура Struts. Мне нужно найти легкое, но сильно настраиваемое решение.
То, что я в настоящее время ищу это:
- Подражать WSDL точно так, как он появляется на существующем нашем клиента WSDL (клиент будет использовать наш сервис, но они хотят, чтобы сделать минимальные изменения) ,
- 100% действительный ответ мыла/xml и WSDL! (Удивительно, что некоторые сторонние пакеты Python, с которыми мы пытались генерировать неверный ответ). Служба SOAP будет потребляться платформами .NET.
- Нам нужно иметь максимальный контроль над сгенерированными именами и пространствами имен WSDL, чтобы клиент мог прозрачно переключиться на наши веб-службы.
- Легкое решение для предоставления SOAP 1.1 & 1.2 услуги на Java, которые будут масштабируемы для многих одновременных запросов.
- Этот Java-интерфейс будет вызывать наш веб-сервис REST для Python. Поэтому я ищу что-то, что специально подходит для этой цели.
- Прямо сейчас мы используем nginx + торнадо для наших веб-сервисов REST, я ищу что-то подобное на Java. Специально, что-то адрес c10k проблема. В основном то, что делает интерфейс Java, просто будет принимать запросы SOAP, а также делать HTTP-вызовы и возвращать ответ. Поэтому я думаю, что разумно ожидать чего-то подобного, например, Tornado, который предлагает неблокирующий сетевой ввод-вывод и хорошо масштабируется.
Я понимаю, что этот вопрос может быть рассмотрен не конструктивен, но я действительно искал какое-то хорошее мнение здесь, как я не нашел информацию в Интернете (возможно, из-за мой плохой поиск).
Я также открыт для других возможных решений для решения нашей проблемы.
просто используйте spring-ws – Forhad