Есть несколько готовых к использованию инструментов, которые позволяют конвертировать Трифт IDL в WSDL. Остальная часть ответа предполагает, что мы живем в мире Java с JDK и Maven под рукой и доступным интернет-соединением.
Первый: Swift Code Generator Tool. Как это ReadME состояния, один должен:
скачать последнюю версию:
mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get -DremoteRepositories=central::default::http://repo1.maven.apache.org/maven2 -Dartifact=com.facebook.swift:swift-generator-cli:RELEASE:jar:standalone -Ddest=/tmp/
запустить загруженный баночку в каталоге, содержащем бережливость файлы:
java -jar /tmp/swift-generator-cli-0.23.1-standalone.jar -use_java_namespace -out ../java *.thrift
предполагая стандарт
- src
- main
- java
- thrift
Maven проект макет. Генератор Swift Code генерирует интерфейс Java для каждой записи Thrift service
. Каждый исходный файл Бережливость должен объявить «яву» пространство имен, например:
namespace java com.acme
Сгенерированного интерфейс будет включать в себя вложенное Async
интерфейса для асинхронного вызова. Удалите Async
subinterface. Автоматизация удаления Async
остается в качестве упражнения для читателя.
Compile генерируется Java-файлы с JAVAC или ваш любимый инструмент для сборки (Ant, Maven, Gradle и т.д.). Не забудьте включить com.facebook.swift:swift-annotations:0.23.1
в качестве зависимости от компиляции.
Наконец использовать Apache Axis2' java2wsdl
утилиты доступные в Axis2 binary distribution, как это:
/tmp/axis2-1.7.4/bin/java2wsdl.sh -cn com.acme.TargetService -cp build/classes/main
для генерации WSDL для записи Бережливость service TargetService {...}
.
По крайней мере, не OOTB [намеренно, я думаю] (http://grokbase.com/t/thrift/user/09atkr5sfr/wsdl-generation-in-thrift): «* Thrift не генерирует файлы WSDL или не реализует SOAP Это, безусловно, можно было бы расширить, но большинство людей предпочитают использовать Трэйфт в качестве альтернативы таким системам, а не как дополняющие друг друга. * ", но вы, вероятно, уже это выяснили. Интересно, почему кто-то готов пойти на эту дорогу? SOAP медленный и раздутый. – JensG
Да, медленно и вздор. Говорят, что все еще швейцарский нож API нашей системы поддерживает SOAP, поскольку он предназначен для интеграции с существующими системами динозавров, которые все еще существуют здесь и там. BTW, конвертируя TRLID IDL в обычную Java с [fb swift] (https://github.com/facebook/swift) и занимая [ось apache] (https: //axis.apache.org/axis2/java/core /), тогда выглядит многообещающим. –
Прохладный, спасибо за понимание. Подумайте, перефразируйте свой вопрос, ответьте на него и даже примите его. Поэтому, если вы найдете что-то подходящее: почему бы не рассказать миру? ;-) - К сожалению, мы также должны поддерживать SOAP, но наш подход немного отличается. Мы генерируем WSDL и IDL из третьего источника, используя инструмент homegrown. Не идеально, но работает Good Enough ™ – JensG