Scala Play2でSOAP

scala開発関連

今どきSOAPなんてと思いますが、古いシステムとかだとまだまだ使われていたり。
JavaでJAX WSみたいなのはもう忘れてしまったので、Scalaでライブラリがないか調べてみました。

play-soap

play2.7でもちゃんと使えました

詳細はこっち

SOAPクライアントの生成手順

簡単にですが手順を残しておきます。

project/plugins.sbtを修正

リポジトリとプラグインを追加します。

resolvers += Resolver.url(
  "play-sbt-plugins", url("https://dl.bintray.com/playframework/sbt-plugin-releases/")
)(Resolver.ivyStylePatterns)

addSbtPlugin("com.typesafe.sbt" % "sbt-play-soap" % "1.1.4")

wsdlを配置

「conf/wsdls」にクライアント生成元のwsdlファイルを配置します。

build.sbtを修正

WSDLファイルのパスと生成するクライアントクラスのパッケージを指定します。
(うまく設定すれば自動的に生成されるかもしれませんが、気持ち悪ので明示しました)

WsdlKeys.wsdlTasks in Compile := Seq(
  WsdlKeys.WsdlTask(
    (baseDirectory.value / "conf" / "wsdls" / "inventoryapi.wsdl").toURI.toURL,
    packageName = Some("jp.co.rakuten.rms.inventoryapi")
  )
)

コンパイル

「sbt compile」すると「target/scala-2.12/wsdl」の下にソースが出力されます。
これで、特になにもしなくてもSOAPクライアントが使えるようになります。

やはりSOAPは面倒くさいですね

タイトルとURLをコピーしました