JBoss JNDI Binding Manager - максимальная длина значения? - PullRequest
0 голосов
/ 04 декабря 2009

Я использую описанную технику здесь для регистрации строковых значений в дереве JNDI через файл XML, развернутый в JBoss.

Это нормально работает для моих системных констант (URL и т. П.). Однако я также пытаюсь зарегистрировать содержимое файла, который был закодирован в строку Base64. Файл довольно большой (около 400 КБ), поэтому полученная строка очень длинная.

Когда я пытаюсь развернуть файл XML в JBoss, я получаю следующую ошибку:

DEPLOYMENTS IN ERROR:
  Deployment "vfsfile:/usr/local/jboss-5.1.0.GA/server/default/deploy/customers-service.xml" is in error due to the following reason(s): org.xml.sax.SAXParseException: XML document structures must start and end within the same entity.

Вероятно ли это из-за того, что я превышаю максимально допустимую длину для строкового значения и, следовательно, он только читает его до определенной точки?

Ответы [ 2 ]

1 голос
/ 11 декабря 2009

В соответствии с документацией JNDI Binding Manager, демонтирование фактически выполняется структурой JBossXB (JBoss XML Binding):

Служба диспетчера привязок JNDI позволяет быстро связывать объекты в JNDI для использования кодом приложения. Класс MBean для привязки обслуживание org.jboss.naming.JNDIBindingServiceMgr. У него есть один атрибут, BindingsConfig, который принимает XML документ, который соответствует jndi-binding-service_1_0.xsd схема. Содержание BindingsConfig Атрибут распаковывается с использованием JBossXB framework.

Но в документации не упоминается никаких ограничений, касающихся BindingsConfig или JBossXB framework. И, честно говоря, я не совсем понимаю, почему существует такой низкий предел (размер довольно приличный для объекта JDNI, но мы далеки от ограничений Java для String).

Итак, если вы уверены, что ваш файл правильно сформирован и действителен (и вы должны подтвердить это программно вне JBoss), возможно, вы могли бы перейти к некоторому дихотомическому тестированию: попробуйте с 1/2 размера строки, затем 3/4 и т. Д. Но это не решит вашу проблему, это только поможет сообществу, особенно если вы войдете в систему JBoss Jira . И, возможно, вы получите больше полезных советов там. Это то, что я бы сделал.

0 голосов
/ 09 декабря 2009
org.xml.sax.SAXParseException: XML document structures must start and end within the same entity.

Если сам документ XML наверняка является допустимым, то эта проблема выглядит как переполнение буфера или неверная интерпретация длины содержимого, которая вызвала укороченную строку без возврата конечного тега. Это, вероятно, ошибка в рассматриваемом парсере SAX. Какой вы используете? Я бы порекомендовал Xerces в его последней версии.

...