ECS:ECS-Sync 无法迁移在存储区迁移过程中报告 SAXParseException 的对象
Summary: ECS-Sync 无法迁移存储区中的所有对象,并且在存储区迁移期间报告 SAXParseException。
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Symptoms
ECS-Sync 无法迁移存储区中的所有对象,并且在存储区迁移期间报告 SAXParseException。
如果您在同步 S3 存储区时看到以下错误,则表示存储区中的对象键包含无效字符:
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 135069; An invalid XML character (Unicode: 0x3) was found in the element content of the document.
2025-07-16 02:56:43 ERROR [pool-1512497-thread-1] EcsSync: unexpected exception
javax.ws.rs.WebApplicationException: javax.xml.bind.UnmarshalException
- with linked exception:
[org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 324854; An invalid XML character (Unicode: 0x1) was found in the element content of the document.]
at com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.readFrom(AbstractRootElementProvider.java:113) ~[ecs-sync-3.5.4.jar:3.5.4]
at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:634) ~[ecs-sync-3.5.4.jar:3.5.4]
at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:586) ~[ecs-sync-3.5.4.jar:3.5.4]
at com.emc.object.s3.jersey.S3JerseyClient.executeRequest(S3JerseyClient.java:844) ~[ecs-sync-3.5.4.jar:3.5.4]
at com.emc.object.s3.jersey.S3JerseyClient.listObjects(S3JerseyClient.java:512) ~[ecs-sync-3.5.4.jar:3.5.4]
at com.emc.object.s3.jersey.S3JerseyClient.listMoreObjects(S3JerseyClient.java:520) ~[ecs-sync-3.5.4.jar:3.5.4]
at com.emc.ecs.sync.storage.s3.EcsS3Storage$PrefixIterator.lambda$getNextBatch$1(EcsS3Storage.java:1167) ~[ecs-sync-3.5.4.jar:3.5.4]
at com.emc.ecs.sync.util.TimingUtil.time(TimingUtil.java:56) ~[ecs-sync-3.5.4.jar:3.5.4]
at com.emc.ecs.sync.AbstractPlugin.time(AbstractPlugin.java:79) ~[ecs-sync-3.5.4.jar:3.5.4]
at com.emc.ecs.sync.storage.s3.EcsS3Storage.access$500(EcsS3Storage.java:65) ~[ecs-sync-3.5.4.jar:3.5.4]
at com.emc.ecs.sync.storage.s3.EcsS3Storage$PrefixIterator.getNextBatch(EcsS3Storage.java:1167) ~[ecs-sync-3.5.4.jar:3.5.4]
at com.emc.ecs.sync.storage.s3.EcsS3Storage$PrefixIterator.getNextObject(EcsS3Storage.java:1144) ~[ecs-sync-3.5.4.jar:3.5.4]
at com.emc.ecs.sync.storage.s3.EcsS3Storage$PrefixIterator.getNextObject(EcsS3Storage.java:1132) ~[ecs-sync-3.5.4.jar:3.5.4]
at com.emc.ecs.sync.util.ReadOnlyIterator.hasNext(ReadOnlyIterator.java:32) ~[ecs-sync-3.5.4.jar:3.5.4]
at com.emc.ecs.sync.EcsSync.run(EcsSync.java:291) [ecs-sync-3.5.4.jar:3.5.4]
at com.emc.ecs.sync.service.SyncJobService$SyncTask.run(SyncJobService.java:299) [ecs-sync-3.5.4.jar:3.5.4]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_392]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_392]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_392]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_392]
at java.lang.Thread.run(Thread.java:750) [?:1.8.0_392]
Caused by: javax.xml.bind.UnmarshalException
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(AbstractUnmarshallerImpl.java:335) ~[?:1.8.0_392]
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmarshalException(UnmarshallerImpl.java:578) ~[ecs-sync-3.5.4.jar:3.5.4]
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:264) ~[ecs-sync-3.5.4.jar:3.5.4]
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:229) ~[ecs-sync-3.5.4.jar:3.5.4]
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:140) ~[?:1.8.0_392]
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:123) ~[?:1.8.0_392]
at com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider.readFrom(XMLRootElementProvider.java:115) ~[ecs-sync-3.5.4.jar:3.5.4]
at com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.readFrom(AbstractRootElementProvider.java:111) ~[ecs-sync-3.5.4.jar:3.5.4]
... 20 more
Caused by: org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0x1) was found in the element content of the document.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204) ~[?:1.8.0_392]
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178) ~[?:1.8.0_392]
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:399) ~[?:1.8.0_392]
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:326) ~[?:1.8.0_392]
at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1466) ~[?:1.8.0_392]
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2922) ~[?:1.8.0_392]
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:601) ~[?:1.8.0_392]
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112) ~[?:1.8.0_392]
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:504) ~[?:1.8.0_392]
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:841) ~[?:1.8.0_392]
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:770) ~[?:1.8.0_392]
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) ~[?:1.8.0_392]
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213) ~[?:1.8.0_392]
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:642) ~[?:1.8.0_392]
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:258) ~[ecs-sync-3.5.4.jar:3.5.4]
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:229) ~[ecs-sync-3.5.4.jar:3.5.4]
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:140) ~[?:1.8.0_392]
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:123) ~[?:1.8.0_392]
at com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider.readFrom(XMLRootElementProvider.java:115) ~[ecs-sync-3.5.4.jar:3.5.4]
at com.sun.jersey.core.provider.jaxb.AbstractRootElementProvider.readFrom(AbstractRootElementProvider.java:111) ~[ecs-sync-3.5.4.jar:3.5.4]
... 20 more
Cause
这意味着在列出源存储区时遇到无效字符,并且无法继续处理。
Resolution
要解决此问题,您必须在列出存储区时对密钥进行 URL 编码。此功能由 ECS S3 插件中的以下高级选项打开(在源配置中):

XML(位于源代码中 <ecsS3Config> 块):
<urlEncodeKeys>true</urlEncodeKeys>Affected Products
ECSArticle Properties
Article Number: 000350999
Article Type: Solution
Last Modified: 13 Aug 2025
Version: 1
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.