2009-04-20 2 views
4

У меня есть довольно типичное приложение JavaEE, составленное с использованием EJB3, компонентов шва, фасоли весны и JSF, все они упакованы в несколько файлов jar и war внутри файла уха. Естественно, для JavaEE у нас есть много XML-файлов как часть приложения. Некоторые из этих XML-файлов проверяются с использованием DTD (шов), а некоторые - с помощью схемы.Где разместить файлы DTD и схемы

Как большинство файлов, взятых из примеров и из других проектов, все DTD и схемы относятся к сайту проекта, где находится DTD или схема по умолчанию. Здесь возникает проблема: по какой-то причине сайт JBoss пропускает DTD шва сегодня (отметьте 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). Поскольку сервер JBoss проверяет XML в бутстрапе, используя это местоположение, развертывание приложения не удалось.

Мой вопрос заключается в следующем: учитывая этот случай, где я должен поместить файлы DTD и определения? Я вижу три варианта:

  1. Используйте расположение по умолчанию, как и раньше. Поскольку это означает, что теперь я добавляю стабильность JBoss, Sun, Spring и любого другого поставщика в мою систему, если мне нужно повторно развернуть приложение, я не хочу этого делать.
  2. Скопируйте все файлы DTD и схемы на мой сервер, указав URLS на сервер под моим контролем.
  3. Скопируйте все файлы DTD и схемы на свое приложение или на сервер приложений и используйте их локально.

Я обычно использую опцию № 3, так как она обеспечивает полный контроль над файлами без сетевых зависимостей. В тесте, который мы выполнили, он даже значительно сократил время загрузки сервера - возможно, XML-парсер не кэширует определения. Есть ли что-то, что я пропустил, приняв этот путь?

ответ

0

Нет, это правильная вещь. Первый должен использоваться только для того, чтобы возиться или играть с кодом, но не для чего-то серьезного, а второй не имеет преимущества перед третьим и сложнее в одно и то же время.

0

Реальный вопрос: вы действительно нужно проверить файлы xml? В большинстве случаев валидация не производится в производственном коде - это слишком медленно в большинстве случаев.

Если вы действительно хотите проверить, перейдите к опции №3.

+0

Как отключить проверку в JBoss? Я не тот, кто называет синтаксический анализатор XML. –

Смежные вопросы