배치를 통해 많은 양의 데이터를 처리하는 매우 큰 XML 파일 (700mb +)을 작성하고 있습니다. 이 프로그램은 초대형 sybase 데이터베이스와 응용 프로그램 간의 인터페이스 역할을합니다. 현재 xsd 스키마가 클래스에 바인딩되어 있습니다. 다시 시작 논리를 염두에두고 XML을 작성할 수있는 방법이 필요합니다.Java JAXB - 재시작 논리를 사용하여 XML 파일 작성
I.E. 내가 그만 둔 곳을 알 수있다. 다시 말해, 프로그램이 실패하면 마지막으로 XML 파일에 무엇을 기록했는지 확인할 수 있어야합니다. 그러면 XML 파일에서 마지막으로 수행 한 작업을 확인할 수 있습니다. 여기에 예제가 있습니다.
<root>
<WorkSet>
<Work>
<Customer>
<Work>
<Customer>
<WorkSet>
<Work>
.....
<root>
쓰기 '작업'또는 '작업 세트'노드를 작성한 후 프로그램이 실패한다고 가정 해보십시오. 처리를 중단 한 곳에서 데리러 갈 수 있습니까? XML 파일의 전단 크기로 인해 XML 파일을 메모리에 다시 읽지 않으려 고 노력하고 있습니다 (500MB의 XML을 끝내고 실패한다고 가정).
도움 주셔서 감사합니다.
+1 - 나는이 라인을 따라 뭔가를 제안하려고했습니다. –
@XmlRootElement 태그를 WorkSet Java 클래스에 추가하면 여러 WorkSet를 연결 한 후 하나의 큰 XML 파일의 기능에 영향을 줍니까? 나는 JAXB에 다소 새로운 것이므로, 올바르게 이해하지 못한다면 알려 주시기 바랍니다. – TyC
'@XmlRootElement'를 추가하면 이전 기능에 영향을 미치지 않는다고 생각합니다. '@XmlRootElement'을 추가하지 않으면 Marshaller.marshal()가 다음 예외를 throw합니다. com.sun.istack.SAXException2 : @ org.package.MyWorkSet "형식을 마샬링 할 수 없기 때문에 요소로 @ XmlRootElement 주석 '입니다. – palacsint