2013-01-18 16 views
6

WSDL Webサービスを使用する必要があり、これまでに見たJavaクライアント側のコードは膨らんで複雑に見えます。私はClojureにクリーンなソリューションが存在するかどうか疑問に思っていたので、おそらくClojureでその部分を実装し、より簡単なAPIをJavaコードに公開するかもしれません。ClojureでのWSDLの使用

答えて

9
cd your_project_dir/src 
wsimport -p some.import.ns http://.../service?wsdl 

./some.import.ns/*.classとなります。 `[ポート(次のように`> - だから、あなただけのuse、それらをあなたのClojureプロジェクト

(ns your.ns ... 
    (:import [some.import.ns some_WS_Service ...])) 

(let [port (-> (some_WS_Service.) 
       .getSome_WS_ServicePort] 
    (... (.someMethod port) ...)) 
+0

で申し訳ありませんが、私は...私は 'スレッドマクロを使用するために' let'を書き換えたい抵抗することができませんでしできます - >(some_WS_Service。).getSome_WS_ServicePort)] '。 @JacekLaskowskiありがとう、 –

+0

AFAIRプロキシオブジェクトはスレッドセーフではありません。したがって、サービスクラスは一度インスタンス化できますが、すべてのスレッドに対してプロキシを作成する必要があります。とにかく彼らはおそらく同じではないでしょう。 – mobyte

+0

良い点!私はそれについて考えなかった。とにかく私はそれが何か変わるとは思わない。 –

関連する問題