Springは最近彼らのWebサービスプロジェクトのバージョン2.3.1と2.4.0の更新を発表した。
バージョン2.3.1はマイナーパッチリリースであり、以下の修正を含んでいる。
- 競合状態の修正(SWS-947)
- Apache Axiom 1.2.16へのアップグレード(SWS-931)
バージョン2.4.0は最新バージョンのSpring Framework 4.3とSpring Security 4.1を実行するためにコードベースをリファクタした。これはまたSpring 5.0と上位互換があるように設計されている。まだJava 8で動作しているアプリケーションはこの新しいバージョンが活用できる。
Spring Webサービスのウェブサイトでは次のように定義されている。
Spring Webサービス(Spring-WS)はSpringコミュニティのプロダクトです。ドキュメントドリブンなWebサービスを作成することに焦点を当てています。Spring Webサービスは契約優先のSOAPサービス開発を容易にすることを目標としています。これにより、XMLペイロードを操作するために多くの方法から1つを使い、柔軟なWebサービス作成を可能にします。
人々は多くの理由でSpring-WSを使います。しかし、ほとんどはそれがWebサービスのベストプラクティスに従うようになったときに、代替のSOAPスタックを見つけられなかった後にそれに引かれていきます。Spring-WSは簡単なプラクティスでベストプラクティスを成し得ます。これはWS-Iベーシックプロファイルや契約優先開発、契約と実装の間を疎結合にすることのようなプラクティスを含んでいます。
上記で言及されたベストプラクティスはSpring Webサービスに初めからずっと使われてきました。2007年1月、InfoQはSpring Webサービスの創始者であるArjen Poutsma氏にインタビューしました。まだプロジェクトが始まったばかりのころです。何がSpring Webサービスを特徴づけているか質問したとき、彼はこう答えました。
初めに、Spring Webサービスは完全に契約優先のWebサービス設計に焦点を当てています。これは基本的にあなたがXMLメッセージを定義する独自のXSDスキーマを書く必要があることを意味しています。WSDLでそのスキーマを参照できます(Spring WebサービスもまたXSDからWSDLを生成するけれども)。考えようによってはそれをバリデーション目的にで使用するかもしれません。
次に、Spring Webサービスは契約と実装の間の疎結合を提供します。契約をクラスに直接結びつけるwsdl2javaツールはありません。代わりに、あなたが望む何らかの方法(DOMやSAX、StAX、JAXB,やCastor、JIBX、XMLBeansのようなXMLマーシャリング技術でさえ)で入って来るXMLを処理するエンドポイントを実装します。入ってきたリクエストをエンドポイントにマップする方法は完全にあなた次第です。デフォルトでは私たちはマッピングを提供しています。これはメッセージ内容もしくはSOAPActionヘッダーをベースにしています。主なアイデアは、あなたはメソッド呼び出しを処理しておらず、むしろXMLメッセージを処理しているということです。
それからPoutsma氏が述べたように、カスタムXSDスキーマを書くことは契約優先のWebサービス設計を定義することの一部である。Spring Webサービスの始め方にある、SOAPベースのWebサービスにおけるconsumeとproduceの方法のガイドは現時点でもまだこの方法で実装されている。
自分自身が生産するWebサービスを消費する、学生のデータをトラッキングするための包括的なSOAPベースのサンプルアプリケーションは、Concretepage.comを参照してほしい。 プロジェクト全体はGitHubのリポジトリ、webservices-soap-produceとwebservices-soap-consumeで見ることができる。
Spring Webサービスは約10年前の状態で独特なまま今日まで残っている。すべてのSpring プロジェクトのように、Spring WebサービスはSpringのエコシステムにうまく統合されている。それにはSpring SecurityやSpringフレームワーク内でアプリケーションコンテキストの設定をあらゆるプロジェクトで利用できることのような機能の利点がある。
Rate this Article
- Editor Review
- Chief Editor Action