First, shame on Xerces for not throwing a SAXParseException in this case. This means that we do not show the file in which the error happens. I have fixed this in OXF, which will now show the file name.
Your actual problem is very typical. By default (without encoding specified in the XML declaration), XML is encoded in UTF-8. If you use an editor which is not encoding-aware and typically assuming an ISO-8859-1 encoding, and you insert characters such as accented letters, curly quotes, etc., you will get this error. As a workaround, you can put an XML declaration with the ISO-8859-1 encoding at the top of your XML file:
<?xml version="1.0" encoding="ISO-8859-1"?>
You can also use an editor which knows how to handle UTF-8.
In your case it is also possible that somebody inserted incorrect characters by accident, and you can just remove those and then decide which encoding you want to use. UTF-8 gives you the whole range of Unicode, while ISO-8859-1 gives you a limited set of characters that work for the Western languages.
I hope this helps,
-Erik
Scott McMullan wrote:
> Hi, > > I'm having a problem accessing the simple login page of our app that hasn't > changed in many moons. Does this exception mean anything to anybody? > > Thanks for any help. > > -Scott McMullan > UCB Center for Document Engineering > > > Time: 4:15:55 PM Priority: ERROR Thread: Thread-5 NDC: null Category: > org.orbeon.oxf.servlet.ProcessorService Location: > org.orbeon.oxf.servlet.ProcessorService.service(ProcessorService.java:335) > Message: > Exception with no location data > Throwable: > java.io.UTFDataFormatException: Invalid byte 3 of 3-byte UTF-8 sequence. > at orbeon.apache.xerces.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:693) > at orbeon.apache.xerces.impl.io.UTF8Reader.read(UTF8Reader.java:445) > at > orbeon.apache.xerces.impl.XMLEntityManager$EntityScanner.load(XMLEntityManag > er.java:3487) > at > orbeon.apache.xerces.impl.XMLEntityManager$EntityScanner.skipChar(XMLEntityM > anager.java:3087) > at > orbeon.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDisp > atcher.dispatch(XMLDocumentFragmentScannerImpl.java:1465) > at > orbeon.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDoc > umentFragmentScannerImpl.java:346) > at > orbeon.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:52 > 9) > at > orbeon.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:58 > 5) > at orbeon.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152) > at > orbeon.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java: > 1142) > at > org.orbeon.oxf.processor.generator.URLGenerator$1.readImpl(URLGenerator.java > :251) > at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImp > l.java:898) > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:283 > ) > at > org.orbeon.oxf.processor.pipeline.TeeProcessor.access$100(TeeProcessor.java: > 18) > at > org.orbeon.oxf.processor.pipeline.TeeProcessor$1.readImpl(TeeProcessor.java: > 33) > at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImp > l.java:898) > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:283 > ) > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsDOM4J(ProcessorImpl.java:3 > 00) > at org.orbeon.oxf.processor.ProcessorImpl$3.read(ProcessorImpl.java:324) > at > org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsObject(ProcessorImpl. > java:371) > at > org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsDOM4J(ProcessorImpl.j > ava:322) > at > org.orbeon.oxf.processor.pipeline.ChooseProcessor$ConcreteChooseProcessor.st > art(ChooseProcessor.java:354) > at > org.orbeon.oxf.processor.pipeline.ChooseProcessor$3.readImpl(ChooseProcessor > .java:310) > at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImp > l.java:898) > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:283 > ) > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:287 > ) > at > org.orbeon.oxf.processor.IdentityProcessor$1.readImpl(IdentityProcessor.java > :24) > at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImp > l.java:898) > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:283 > ) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$000(PipelineProce > ssor.java:55) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$2.run(PipelineProcessor. > java:90) > at > org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:41 > 7) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$100(PipelineProce > ssor.java:55) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(PipelineProce > ssor.java:88) > at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImp > l.java:898) > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:283 > ) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$1500(PipelineProc > essor.java:55) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$6.run(PipelineProcessor. > java:395) > at > org.orbeon.oxf.processor.ProcessorImpl.executeParents(ProcessorImpl.java:432 > ) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$1600(PipelineProc > essor.java:55) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$InternalTopOutput.readIm > pl(PipelineProcessor.java:393) > at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImp > l.java:898) > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:283 > ) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$1500(PipelineProc > essor.java:55) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$6.run(PipelineProcessor. > java:395) > at > org.orbeon.oxf.processor.ProcessorImpl.executeParents(ProcessorImpl.java:432 > ) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$1600(PipelineProc > essor.java:55) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$InternalTopOutput.readIm > pl(PipelineProcessor.java:393) > at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImp > l.java:898) > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:283 > ) > at > org.orbeon.oxf.processor.pipeline.TeeProcessor.access$100(TeeProcessor.java: > 18) > at > org.orbeon.oxf.processor.pipeline.TeeProcessor$1.readImpl(TeeProcessor.java: > 33) > at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImp > l.java:898) > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:283 > ) > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:287 > ) > at > org.orbeon.oxf.processor.IdentityProcessor$1.readImpl(IdentityProcessor.java > :24) > at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImp > l.java:898) > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:283 > ) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$000(PipelineProce > ssor.java:55) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$2.run(PipelineProcessor. > java:90) > at > org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:41 > 7) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$100(PipelineProce > ssor.java:55) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(PipelineProce > ssor.java:88) > at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImp > l.java:898) > at > org.orbeon.oxf.processor.pipeline.ChooseProcessor$3.readImpl(ChooseProcessor > .java:312) > at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImp > l.java:898) > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:283 > ) > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:287 > ) > at > org.orbeon.oxf.processor.IdentityProcessor$1.readImpl(IdentityProcessor.java > :24) > at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImp > l.java:898) > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:283 > ) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$000(PipelineProce > ssor.java:55) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$2.run(PipelineProcessor. > java:90) > at > org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:41 > 7) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$100(PipelineProce > ssor.java:55) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(PipelineProce > ssor.java:88) > at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImp > l.java:898) > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:283 > ) > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsDOM4J(ProcessorImpl.java:3 > 00) > at org.orbeon.oxf.processor.ProcessorImpl$3.read(ProcessorImpl.java:324) > at > org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsObject(ProcessorImpl. > java:371) > at > org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsDOM4J(ProcessorImpl.j > ava:322) > at org.orbeon.oxf.processor.XFormsOutput$1.readImpl(XFormsOutput.java:62) > at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImp > l.java:898) > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:283 > ) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$000(PipelineProce > ssor.java:55) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$2.run(PipelineProcessor. > java:90) > at > org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:41 > 7) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$100(PipelineProce > ssor.java:55) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(PipelineProce > ssor.java:88) > at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImp > l.java:898) > at > org.orbeon.oxf.processor.pipeline.ChooseProcessor$3.readImpl(ChooseProcessor > .java:312) > at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImp > l.java:898) > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:283 > ) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$000(PipelineProce > ssor.java:55) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$2.run(PipelineProcessor. > java:90) > at > org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:41 > 7) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$100(PipelineProce > ssor.java:55) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(PipelineProce > ssor.java:88) > at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImp > l.java:898) > at > org.orbeon.oxf.processor.pipeline.ChooseProcessor$3.readImpl(ChooseProcessor > .java:312) > at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImp > l.java:898) > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:283 > ) > at > org.orbeon.oxf.processor.pipeline.TeeProcessor.access$100(TeeProcessor.java: > 18) > at > org.orbeon.oxf.processor.pipeline.TeeProcessor$1.readImpl(TeeProcessor.java: > 33) > at org.orbeon.oxf.processor.ProcessorImpl$5.read(ProcessorImpl.java:784) > at > org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImp > l.java:898) > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:283 > ) > at > org.orbeon.oxf.processor.ProcessorImpl.readInputAsDOM4J(ProcessorImpl.java:3 > 00) > at org.orbeon.oxf.processor.ProcessorImpl$3.read(ProcessorImpl.java:324) > at > org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsObject(ProcessorImpl. > java:371) > at > org.orbeon.oxf.processor.ProcessorImpl.readCacheInputAsDOM4J(ProcessorImpl.j > ava:322) > at > org.orbeon.oxf.processor.pipeline.ChooseProcessor$ConcreteChooseProcessor.st > art(ChooseProcessor.java:354) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor$11.run(PipelineProcessor > .java:474) > at > org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:41 > 7) > at > org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor. > java:472) > at > org.orbeon.oxf.processor.WebAppControllerProcessor.start(WebAppControllerPro > cessor.java:300) > at > org.orbeon.oxf.servlet.ProcessorService.service(ProcessorService.java:292) > at > org.orbeon.oxf.servlet.ProcessorServlet.service(ProcessorServlet.java:40) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application > FilterChain.java:247) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh > ain.java:193) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja > va:256) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok > eNext(StandardPipeline.java:643) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) > at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja > va:191) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok > eNext(StandardPipeline.java:643) > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase > .java:494) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok > eNext(StandardPipeline.java:641) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) > at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180 > ) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok > eNext(StandardPipeline.java:643) > at > org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve. > java:171) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok > eNext(StandardPipeline.java:641) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172 > ) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok > eNext(StandardPipeline.java:641) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) > at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java > :174) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok > eNext(StandardPipeline.java:643) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) > at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne > ction(Http11Protocol.java:392) > at > org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav > a:619) > at java.lang.Thread.run(Thread.java:536)
_______________________________________________ oxf-users mailing list [EMAIL PROTECTED] http://mail.orbeon.com/mailman/listinfo/oxf-users