私は両方のアプローチを使用しました。私の提案はの最初にというスキーマを使用しますが、のコードは最初に WSDLです。
WSDLファイルの作成には、バインディングやポートなどのニュアンスがあります。私はむしろ手ではなく道具でこれをやります。そこにこれを行うに役立つツールがありますが、それらのどれも
、あなたの展開を確認することができる非常に少なくとも、
@WebService
public ...
よりも単純ではありません。
スキーマでは、XMLスキーマ言語がJavaで記述できる言語よりもはるかに豊富であるため、の最初のコードはです。私が通常与える例は、XMLスキーマが文字列のサイズを制限し、正規表現パターンを適用できることを示しています。 Javaや注釈でこれを行うのはちょっと面倒です。
スキーマをコントラクトとして最初に行うもう1つの利点は、スキーマファイルをHTMLドキュメントに変換するツールがあることです。
XJCツールは、必要なクラスファイルを生成できます。しかし、私は最初にそれを行うことをお勧めします。
最後に、生成されたWSDLファイルを使用して、その代わりに作業する必要があります。そうすれば、wsimportを使用して、WSDLからSchemaまでのすべてが有効であることを検証できます。
@WebService実装のwsdlLocation属性を使用してWSDLファイルを使用してデプロイすることができます。ユーザーがサーバーからWSDLを要求してもバインディングデータは修正されますが、アノテーションは保持されます。そうしないと、注釈は要求されたWSDLファイルには表示されません。
各側の長所と短所について質問するので、私はそれが主観的であるとは思わない。 –