2009-12-04 2 views
0

here 기술을 사용하여 JBoss에 배포 된 XML 파일을 통해 JNDI 트리에 문자열 값을 등록합니다.JBoss JNDI 바인딩 관리자 - 최대 값 길이?

이것은 시스템 상수 (URL 등)에 잘 작동합니다. 그러나 나는 또한 Base64 문자열로 인코딩 된 파일의 내용을 등록하려고합니다. 이 파일은 상당히 커서 (약 400k) 결과 문자열이 매우 길다. 나는 보스에 XML 파일을 배포 할 때

, 나는 다음과 같은 오류 얻을 :

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. 

을 내가 문자열 값에 허용되는 최대 길이를 초과하고 따라서 그것은 단지이기 때문에 될이 보인다 그것을 특정 시점까지 읽는가? XML 문서 자체가 특정 유효한위한 경우

+0

type = "java.io.File"을 전달하고 파일 경로를 값으로 사용해 보셨습니까? – cetnar

+0

나는 (귀하의 의견을 읽은 후) 그것을 시도했지만 파일 이름이 완전히 잘못되었다고해도 오류가 없으므로 실제로 JNDI 트리에 파일을 저장한다고 생각하지 않습니다. – William

답변

1

는 JNDI 바인딩 관리자의 문서에 따르면, 비 정렬 화 실제로 JBossXB (제이 보스 XML 바인딩) 프레임 워크에 의해 peformed된다

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 객체에 대해서는 꽤 괜찮은 크기이지만, 우리는 String에 대한 Java 한계와는 거리가 멀다)가 왜 그렇게 낮은지를 알지 못합니다.

파일이 잘 구성되어 있고 유효한지 확인한 경우 (프로그래밍 방식으로 JBoss 외부에서 확인해야 함) 일부 이분법 테스트를 진행할 수 있습니다. 문자열 크기의 1/2, 하지만 3/4 등.하지만이 문제는 실제로 해결되지 않을 것입니다. 특히 커뮤니티에 도움이 될 것입니다. 특히 JBoss Jira에 로그인 할 때 더욱 그렇습니다. 그리고 아마도 도움이되는 힌트를 얻게 될 것입니다. 이것이 내가하는 일이다.

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

,이 문제는 버퍼 오버 플로우 또는 종료 태그가 반환되지 않고 단축 라인을 발생하는 콘텐츠 길이의 잘못된 해석처럼 보인다. 이것은 문제의 SAX 파서에있는 버그 일 가능성이 높습니다. 어느 쪽을 사용하고 있습니까? Xerces을 최신 버전으로 권장합니다.