2017-01-19 1 views
0

드리프트 IDL의베이스에 wsdl 사양을 자동으로 생성 할 수있는 오픈 소스 라이브러리 또는 온라인 서비스가 있습니까?절약 IDL을 wsdl 사양으로 변환하는 방법이 있습니까?

목표는 SOAP 프로토콜을 통해 기존 시스템과 결합 할 수 있도록 기존 쓰레드 API 상단에 Facade API를 구축하는 것입니다.

+1

적어도 OOTB는 아닙니다. [http://grokbase.com/t/thrift/user/09atkr5sfr/wsdl-generation-in-thrift] "* Thrift는 WSDL 파일을 생성하거나 SOAP을 구현하지 않습니다. 프로토콜을 지원할 수는 있지만 확장 할 수는 있지만 대부분의 사람들은 Thrift를 보완적인 시스템이 아닌 그러한 시스템의 대안으로 사용하기로 결정했습니다. ""하지만 이미 그 사실을 알았습니다. 왜 누군가가 그 길을 가고 싶어하는지 궁금합니다. SOAP은 느리고 불투명합니다. – JensG

+0

네, 천천히 그리고 bloaty. 우리 시스템의 여전히 스위스 나이프 API는 여전히 여기저기에 존재하는 불안한 공룡 시스템과 통합하기 위해 SOAP을 지원한다고합니다. BTW에서는 Thrift IDL을 [fb swift] (https://github.com/facebook/swift) 및 [apache 축] (https : //axis.apache)으로 일반 Java로 변환합니다.org/axis2/java/core /)는 지금까지는 유망 해 보인다. –

+1

통찰력에 감사드립니다. 질문을 수정하고 답변을 게시하고 동의하십시오. 그래서 적합한 것을 발견하면 왜 세상에 알리지 않으시겠습니까? ;-) - 불행히도 SOAP도 지원해야하지만 우리의 접근 방식은 조금 다릅니다. 우리는 자체 개발 툴을 사용하여 세 번째 소스에서 WSDL과 IDL을 생성합니다. 이상적이지는 않지만 좋은 성과가 있습니다. – JensG

답변

0

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/ 
  • 실행 다운로드 항아리 포함 중고품 파일 :

    1. 다운로드 최신 버전 :

      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의 자동화는 독자의 연습 과제로 남겨 두었습니다.


    는 컴파일은 javac의 또는 당신의 마음에 드는 빌드 도구 (개미, 메이븐, Gradle을, 등)와 함께 자바 파일을 생성. 컴파일 종속성으로 com.facebook.swift:swift-annotations:0.23.1을 포함하는 것을 잊지 마십시오.

    마지막으로 다음과 같이 Axis2 binary distribution에서 사용할 수 아파치 Axis2를 'java2wsdl 유틸리티를 사용

    /tmp/axis2-1.7.4/bin/java2wsdl.sh -cn com.acme.TargetService -cp build/classes/main 
    

    는 드리프트 service TargetService {...} 항목에 대한 WSDL을 생성 할 수 있습니다.

  • 관련 문제