2009-04-20 12 views
4

EJB3、シームコンポーネント、スプリングビーン、JSFを使って構成された、かなり典型的なJavaEEアプリケーションがあります。これらはすべてearファイル内の複数のjarファイルとwarファイルにパッケージ化されています。もちろん、JavaEEの場合、アプリケーションの一部として多くのXMLファイルがあります。これらのXMLファイルの一部は、DTD(シーム)とスキーマを使用して検証されます。DTDとスキーマファイルの配置

ほとんどのファイルは、サンプルや他のプロジェクトから取得したものですが、すべてのDTDとスキーマは、デフォルトのDTDまたはスキーマが存在するプロジェクトのサイトを参照しています。何らかの理由で、JBossサイトが今日のシームDTDを逃しています(Check http://www.jboss.com/products/seam/components-1.1.dtdhttp://www.jboss.com/products/seam/components-1.2.dtdhttp://www.jboss.com/products/seam/components-2.0.dtd)。 JBossサーバーはこの場所を使用してブートストラップ時にXMLを検証するため、アプリケーションのデプロイメントは失敗しました。

私の質問は次のとおりです。この場合、DTDと定義ファイルはどこに置くべきですか?次の3つのオプションがあります。

  1. 以前と同じように、デフォルトの場所を使用してください。つまり、アプリケーションを再デプロイする必要がある場合に備えて、JBoss、Sun、Spring、その他のベンダーの安定性を私のシステムに追加することになります。
  2. すべてのDTDファイルとスキーマファイルを自分のサーバーにコピーします。URLSは自分のコントロール下のサーバーを指しています。
  3. すべてのDTDファイルとスキーマファイルをアプリケーションまたはアプリケーションサーバーにコピーし、ローカルで使用します。

私はオプション3を使用する傾向があります。ネットワークに依存せずにファイルを完全に制御できるからです。これまでのテストでは、サーバーのブートストラップ時間を大幅に短縮しましたが、XMLパーサーは定義をキャッシュしませんでした。この道を踏み出すことで私が逃している恋愛はありますか?

答えて

0

これは正しいことです。最初のコードは、コードを混乱させるだけで使用してください。深刻なものではなく、2番目のコードは3番目のコードよりも利点がなく、同時に複雑です。

0

実際の質問は:本当にはxmlファイルを検証する必要がありますか? ほとんどの場合、検証は実動コードでは行われません。ほとんどの場合、遅すぎます。

本当に検証したい場合は、オプション3に進みます。

+0

JBossで検証をオフにするにはどうすればよいですか?私はXMLパーサを呼び出す人ではない。 –