有没有办法将 thrift IDL 转换为 wsdl 规范?
Is there a way to convert thrift IDL into wsdl spec?
是否有任何开源库或在线服务可以在 thrift IDL 的基础上自动生成 wsdl 规范?
目标是在现有 thrift API 之上构建外观 API,这将允许通过 SOAP 协议与旧系统耦合。
有几个现成的工具可以将 Thrift IDL 转换为 WSDL。答案的其余部分假设我们生活在 Java 的世界中,手边有 JDK 和 Maven,并且互联网连接可用。
第一个是Swift Code Generator Tool。正如自述文件所述,必须:
下载最新版本:
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/
运行 在包含 thrift 文件的目录中下载 jar:
java -jar /tmp/swift-generator-cli-0.23.1-standalone.jar -use_java_namespace -out ../java *.thrift
假设标准
- src
- main
- java
- thrift
Maven 项目布局。 Swift 代码生成器将为每个 Thrift service
条目生成一个 Java 接口。每个 Thrift 源文件都必须声明一个 'java' 命名空间,如下所示:
namespace java com.acme
生成的接口将包含用于异步调用的嵌套 Async
接口。删除 Async
子接口。 Async
删除的自动化留作 reader.
的练习
使用 javac 或您最喜欢的构建工具(ant、maven、gradle 等)编译生成的 java 文件。不要忘记将 com.facebook.swift:swift-annotations:0.23.1
作为编译依赖项包含在内。
最后使用 Axis2 binary distribution 中可用的 Apache Axis2' java2wsdl
实用程序,如下所示:
/tmp/axis2-1.7.4/bin/java2wsdl.sh -cn com.acme.TargetService -cp build/classes/main
为 Thrift service TargetService {...}
条目生成 wsdl。
是否有任何开源库或在线服务可以在 thrift IDL 的基础上自动生成 wsdl 规范?
目标是在现有 thrift API 之上构建外观 API,这将允许通过 SOAP 协议与旧系统耦合。
有几个现成的工具可以将 Thrift IDL 转换为 WSDL。答案的其余部分假设我们生活在 Java 的世界中,手边有 JDK 和 Maven,并且互联网连接可用。
第一个是Swift Code Generator Tool。正如自述文件所述,必须:
下载最新版本:
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/
运行 在包含 thrift 文件的目录中下载 jar:
java -jar /tmp/swift-generator-cli-0.23.1-standalone.jar -use_java_namespace -out ../java *.thrift
假设标准
- src
- main
- java
- thrift
Maven 项目布局。 Swift 代码生成器将为每个 Thrift service
条目生成一个 Java 接口。每个 Thrift 源文件都必须声明一个 'java' 命名空间,如下所示:
namespace java com.acme
生成的接口将包含用于异步调用的嵌套 Async
接口。删除 Async
子接口。 Async
删除的自动化留作 reader.
使用 javac 或您最喜欢的构建工具(ant、maven、gradle 等)编译生成的 java 文件。不要忘记将 com.facebook.swift:swift-annotations:0.23.1
作为编译依赖项包含在内。
最后使用 Axis2 binary distribution 中可用的 Apache Axis2' java2wsdl
实用程序,如下所示:
/tmp/axis2-1.7.4/bin/java2wsdl.sh -cn com.acme.TargetService -cp build/classes/main
为 Thrift service TargetService {...}
条目生成 wsdl。