2009-04-20 7 views
4

J'ai une application JavaEE assez typique, composée d'EJB3, de composants de couture, de haricots de printemps et de JSF, tous empaquetés dans plusieurs fichiers jar et war dans un fichier ear. Naturellement pour JavaEE, nous avons beaucoup de fichiers XML dans le cadre de l'application. Certains de ces fichiers XML sont validés en utilisant la DTD (seam) et d'autres en utilisant le schéma.Où placer les fichiers DTD et schéma

Comme la plupart des fichiers proviennent des exemples et d'autres projets, tous les DTD et schémas se réfèrent au site du projet, où réside la DTD ou le schéma par défaut. Voici le problème: Pour une raison quelconque, le site JBoss manque les DTD de couture aujourd'hui (Vérifiez http://www.jboss.com/products/seam/components-1.1.dtd, http://www.jboss.com/products/seam/components-1.2.dtd, http://www.jboss.com/products/seam/components-2.0.dtd). Étant donné que le serveur JBoss valide le XML au démarrage à l'aide de cet emplacement, le déploiement de l'application a échoué.

Ma question est la suivante: Dans ce cas, où dois-je mettre la DTD et les fichiers de définition? Je vois trois options:

  1. Utilisez l'emplacement par défaut, comme je l'ai fait avant. Comme cela signifie que j'ajoute maintenant la stabilité de JBoss, Sun, Spring et tout autre fournisseur dans mon système au cas où je devrais redéployer l'application, je préfère ne pas le faire.
  2. Copiez tous les fichiers DTD et schéma sur mon serveur, en faisant pointer l'URL vers un serveur sous mon contrôle.
  3. Copiez tous les fichiers DTD et schéma sur mon application ou mon serveur d'applications et utilisez-les localement.

J'ai tendance à utiliser l'option # 3, car elle offre un contrôle total sur les fichiers, sans dépendance au réseau. Dans le test que nous avons fait, il a même réduit de manière significative le temps d'amorçage du serveur - apparemment l'analyseur XML ne cache pas les définitions. Y a-t-il quelque chose qui me manque en prenant ce chemin?

Répondre

0

Non, c'est la bonne chose à faire. Le premier ne devrait être utilisé que pour jouer ou jouer avec du code mais pas pour quelque chose de sérieux et le second n'a aucun avantage sur le troisième et est plus compliqué en même temps.

0

La vraie question est: Avez-vous vraiment besoin de valider les fichiers xml? Dans la plupart des cas, la validation n'est pas effectuée dans le code de production - elle est simplement trop lente la plupart du temps.

Si vous voulez vraiment valider, optez pour l'option # 3.

+0

Comment désactiver la validation dans JBoss? Je ne suis pas celui qui appelle l'analyseur XML. –

Questions connexes