0

REST と SOAP の 2 つの Web サービスと対話するジャージー クライアント アプリケーションを作成しました。REST サービスによって提供される従業員データを使用して、SOAP サービスで新しいユーザーを作成します。

REST サービスは、Employee エンティティを返す JAX-RS (Jersey) アプリケーションです。

@Entity
@Table(name = "EMPLOYEE_TABLE")
@XmlRootElement
public class Employee implements Serializable {
  ...
}

エンティティ クラスのスキーマ定義を明示的に作成していません。

GET リクエストは、Employee エンティティの表現を返します。

GET /employees/100

<Employee id='100' providerId='3345'>
  <Link type="application/xml" href="/employees/100" rel="self"/>
  <Name>Doe, Dr. John</Name>
  <Departments>
    <Department id='10'><Name>Emergency Medicine</Name></Department>
    <Department id='56'><Name>Behavioral Medicine</Name></Department>
  </Departments>
</Employee>

SOAP サービス (BusinessObjects Enterprise Web サービス SDK) は、その使用を簡素化する Java クライアントを提供します。

Employee エンティティの XML 表現を解析して User クラスの適切なセッターに割り当てることはできますが、Jersey クライアント アプリケーションで (適切な注釈を使用して) Employee プロキシ クラスを作成する方がおそらく簡単でしょう。

質問:

  1. JAX-RS (具体的には、私の場合は Jersey) には、エンティティのスキーマ定義 (XSD 形式) を公開するメカニズムがありますか? WADL ドキュメントには、この種の情報は含まれていません。
  2. Employee リソース クラスを模倣する POJO クラス表現を手動で作成することもできますが、おそらく「ツール」を使用する必要があります。これにはどのようなオプションがありますか?
  3. 時間が経つにつれて、Employee エンティティに要素を追加する必要があるかもしれません。これは、RESTful サービスの新しいバージョンを作成する必要があるということですか?
  4. スキーマ定義を自動的に生成して公開するようにジャージーを構成でき、従業員を変更するとスキーマ定義が変更されると仮定すると、従業員エンティティは未承認の変更を防ぐためのインターフェースを実装する必要がありますか?
4

1 に答える 1

0

質問 1 に関しては、XSD が Web アプリケーションにデプロイされている場合は、ブラウザでナビゲートするだけです。たとえば、私の webapp には/xsd、XSD を含むフォルダーがあります。アプリが実行されているときに、ブラウザーをポイントhttp://localhost:8080/<app_name>/xsd/<xsd_name>.xsdして XSD を表示できます。

于 2012-05-30T21:02:48.457 に答える