드리프트 IDL의베이스에 wsdl 사양을 자동으로 생성 할 수있는 오픈 소스 라이브러리 또는 온라인 서비스가 있습니까?절약 IDL을 wsdl 사양으로 변환하는 방법이 있습니까?
목표는 SOAP 프로토콜을 통해 기존 시스템과 결합 할 수 있도록 기존 쓰레드 API 상단에 Facade API를 구축하는 것입니다.
드리프트 IDL의베이스에 wsdl 사양을 자동으로 생성 할 수있는 오픈 소스 라이브러리 또는 온라인 서비스가 있습니까?절약 IDL을 wsdl 사양으로 변환하는 방법이 있습니까?
목표는 SOAP 프로토콜을 통해 기존 시스템과 결합 할 수 있도록 기존 쓰레드 API 상단에 Facade API를 구축하는 것입니다.
Thrift IDL을 WSDL로 변환 할 수있는 몇 가지 도구를 사용할 준비가되었습니다. 나머지 대답은 우리가 JDK와 Maven을 사용하여 Java 환경에 있고 인터넷 연결이 가능하다고 가정합니다.
첫 번째 것은 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/
실행 다운로드 항아리 포함 중고품 파일 :
다운로드 최신 버전 :
java -jar /tmp/swift-generator-cli-0.23.1-standalone.jar -use_java_namespace -out ../java *.thrift
가정을가 추가 정보 상태를의로, 하나는에 있습니다 표준
- src
- main
- java
- thrift
Maven 프로젝트 레이아웃. Swift Code Generator는 각 슬 리프트 service
항목에 대한 Java 인터페이스를 생성합니다. 모든 드리프트 소스 파일이처럼 '자바'네임 스페이스를 선언해야합니다 :
namespace java com.acme
생성 된 인터페이스는 비동기 호출을위한 중첩 Async
인터페이스를 포함한다. Async
하위 인터페이스를 제거하십시오. Async
의 자동화는 독자의 연습 과제로 남겨 두었습니다.
com.facebook.swift:swift-annotations:0.23.1
을 포함하는 것을 잊지 마십시오.
java2wsdl
유틸리티를 사용 /tmp/axis2-1.7.4/bin/java2wsdl.sh -cn com.acme.TargetService -cp build/classes/main
는 드리프트 service TargetService {...}
항목에 대한 WSDL을 생성 할 수 있습니다.
적어도 OOTB는 아닙니다. [http://grokbase.com/t/thrift/user/09atkr5sfr/wsdl-generation-in-thrift] "* Thrift는 WSDL 파일을 생성하거나 SOAP을 구현하지 않습니다. 프로토콜을 지원할 수는 있지만 확장 할 수는 있지만 대부분의 사람들은 Thrift를 보완적인 시스템이 아닌 그러한 시스템의 대안으로 사용하기로 결정했습니다. ""하지만 이미 그 사실을 알았습니다. 왜 누군가가 그 길을 가고 싶어하는지 궁금합니다. SOAP은 느리고 불투명합니다. – JensG
네, 천천히 그리고 bloaty. 우리 시스템의 여전히 스위스 나이프 API는 여전히 여기저기에 존재하는 불안한 공룡 시스템과 통합하기 위해 SOAP을 지원한다고합니다. BTW에서는 Thrift IDL을 [fb swift] (https://github.com/facebook/swift) 및 [apache 축] (https : //axis.apache)으로 일반 Java로 변환합니다.org/axis2/java/core /)는 지금까지는 유망 해 보인다. –
통찰력에 감사드립니다. 질문을 수정하고 답변을 게시하고 동의하십시오. 그래서 적합한 것을 발견하면 왜 세상에 알리지 않으시겠습니까? ;-) - 불행히도 SOAP도 지원해야하지만 우리의 접근 방식은 조금 다릅니다. 우리는 자체 개발 툴을 사용하여 세 번째 소스에서 WSDL과 IDL을 생성합니다. 이상적이지는 않지만 좋은 성과가 있습니다. – JensG