2009-12-04 2 views
0

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

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

При попытке развернуть файл 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. 

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

+0

Вы пробовали передать тип = "java.io.File" и как путь к файлу как значение? – cetnar

+0

Я пробовал это (после прочтения вашего комментария), но я не думаю, что он фактически помещает файл в дерево JNDI, так как нет ошибки, даже если имя файла завершено неправильно. – William

ответ

1

Согласно документации Binding Manager, JNDI, то демаршаллинга фактически включившее в XML (Binding JBoss) рамки JBossXB:

The JNDI binding manager service allows you to quickly bind objects into JNDI for use by application code. The MBean class for the binding service is org.jboss.naming.JNDIBindingServiceMgr . It has a single attribute, BindingsConfig , which accepts an XML document that conforms to the jndi-binding-service_1_0.xsd schema. The content of the BindingsConfig attribute is unmarshalled using the JBossXB framework.

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

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

0
org.xml.sax.SAXParseException: XML document structures must start and end within the same entity. 

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

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