Hi Vadim et al Okay, I've now edited JaxpParser.java, the diff's between the 2.0.2 version (same as the 2.0.3 version) and my modification is below.
But it doesn't work. What have I missed? Do I need to fix something in cocoon.xconf? I've modified it in the 2.0.2 source. ... How can I build a test to see if the xml parser is in fact getting the allow-java-encodings feature turned on? Some XSP perhaps? (I am really only assuming that Blackdown 1.2.2 JDK does support MacRoman, because the Sun JDK 1.2.2 does and we do have a $JAVA_HOME/jre/lib/i18n.jar file present, but this is an assumption that I need to question... but my feeling is that the code i've written into cocoon is probably just plain wrong...) Thankyou Jesse bash-2.04# diff ./src/java/org/apache/cocoon/components/parser/JaxpParser.java.orig ./src/java/org/apache/cocoon/components/parser/JaxpParser.java 138a139,141 > /** do we want to allow all possible text encodings recognised >by current JVM? */ > protected boolean allowJavaEncodings; > 205a209,214 > > // Pick up "allow-java-encodings" to allow the use of additional > // character encodings supported by current JVM (eg "MacRoman") > // Jesse Reynolds 2002.08.10 > this.allowJavaEncodings = >params.getParameterAsBoolean("allow-java-encodings", true); > 215a225,233 > } > > if (this.allowJavaEncodings) { > try { > >this.reader.setFeature("http://xml.org/sax/features/allow-java-encodings", >true); > } catch (SAXException e) { > getLogger().warn("SAX2 driver does not support >feature: 'allow-java-encodings' "+ > >"('http://xml.org/sax/features/allow-java-encodings')"); > } The error is the same (or similar) as before: org.xml.sax.SAXException: Stopping after fatal error: The encoding "MacRoman" is not supported. org.apache.cocoon.ProcessingException: Stopping after fatal error: The encoding "MacRoman" is not supported.: org.xml.sax.SAXException: Stopping after fatal error: The encoding "MacRoman" is not supported. at org.apache.cocoon.generation.ServerPagesGenerator.setup(ServerPagesGenerator.java, Compiled Code) at org.apache.cocoon.components.pipeline.AbstractEventPipeline.setupPipeline(AbstractEventPipeline.java, Compiled Code) at org.apache.cocoon.components.pipeline.CachingEventPipeline.setup(CachingEventPipeline.java, Compiled Code) at org.apache.cocoon.components.pipeline.CachingEventPipeline.generateKey(CachingEventPipeline.java, Compiled Code) at org.apache.cocoon.components.pipeline.CachingStreamPipeline.process(CachingStreamPipeline.java, Compiled Code) at org.apache.cocoon.www.afringe.sitemap_xmap.matchN10064(sitemap_xmap.java, Compiled Code) at org.apache.cocoon.www.afringe.sitemap_xmap.process(sitemap_xmap.java, Compiled Code) at org.apache.cocoon.www.afringe.sitemap_xmap.process(sitemap_xmap.java, Compiled Code) at org.apache.cocoon.sitemap.Handler.process(Handler.java, Compiled Code) at org.apache.cocoon.sitemap.Manager.invoke(Manager.java, Compiled Code) at org.apache.cocoon.www.sitemap_xmap.matchN10357(sitemap_xmap.java, Compiled Code) at org.apache.cocoon.www.sitemap_xmap.process(sitemap_xmap.java, Compiled Code) at org.apache.cocoon.www.sitemap_xmap.process(sitemap_xmap.java, Compiled Code) at org.apache.cocoon.sitemap.Handler.process(Handler.java, Compiled Code) at org.apache.cocoon.sitemap.Manager.invoke(Manager.java, Compiled Code) at org.apache.cocoon.sitemap.SitemapManager.process(SitemapManager.java, Compiled Code) at org.apache.cocoon.Cocoon.process(Cocoon.java, Compiled Code) at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java, Compiled Code) at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java, Compiled Code) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java, Compiled Code) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java, Compiled Code) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java, Compiled Code) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java, Compiled Code) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java, Compiled Code) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java, Compiled Code) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java, Compiled Code) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java, Compiled Code) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java, Compiled Code) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java, Compiled Code) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java, Compiled Code) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java, Compiled Code) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java, Compiled Code) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java, Compiled Code) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java, Compiled Code) at java.lang.Thread.run(Thread.java, Compiled Code) org.xml.sax.SAXException: Stopping after fatal error: The encoding "MacRoman" is not supported. at org.apache.xerces.framework.XMLParser.reportError(XMLParser.java, Compiled Code) at org.apache.xerces.readers.DefaultEntityHandler.startReadingFromDocument(DefaultEntityHandler.java, Compiled Code) at org.apache.xerces.framework.XMLParser.parseSomeSetup(XMLParser.java, Compiled Code) at org.apache.xerces.framework.XMLParser.parse(XMLParser.java, Compiled Code) at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java, Compiled Code) at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java, Compiled Code) at org.apache.cocoon.components.language.markup.LogicsheetCodeGenerator.generateCode(LogicsheetCodeGenerator.java, Compiled Code) at org.apache.cocoon.components.language.markup.AbstractMarkupLanguage.generateCode(AbstractMarkupLanguage.java, Compiled Code) at org.apache.cocoon.components.language.generator.ProgramGeneratorImpl.generateResource(ProgramGeneratorImpl.java, Compiled Code) at org.apache.cocoon.components.language.generator.ProgramGeneratorImpl.createResource(ProgramGeneratorImpl.java, Compiled Code) at org.apache.cocoon.components.language.generator.ProgramGeneratorImpl.load(ProgramGeneratorImpl.java, Compiled Code) at org.apache.cocoon.generation.ServerPagesGenerator.setup(ServerPagesGenerator.java, Compiled Code) at org.apache.cocoon.components.pipeline.AbstractEventPipeline.setupPipeline(AbstractEventPipeline.java, Compiled Code) at org.apache.cocoon.components.pipeline.CachingEventPipeline.setup(CachingEventPipeline.java, Compiled Code) at org.apache.cocoon.components.pipeline.CachingEventPipeline.generateKey(CachingEventPipeline.java, Compiled Code) at org.apache.cocoon.components.pipeline.CachingStreamPipeline.process(CachingStreamPipeline.java, Compiled Code) at org.apache.cocoon.www.afringe.sitemap_xmap.matchN10064(sitemap_xmap.java, Compiled Code) at org.apache.cocoon.www.afringe.sitemap_xmap.process(sitemap_xmap.java, Compiled Code) at org.apache.cocoon.www.afringe.sitemap_xmap.process(sitemap_xmap.java, Compiled Code) at org.apache.cocoon.sitemap.Handler.process(Handler.java, Compiled Code) at org.apache.cocoon.sitemap.Manager.invoke(Manager.java, Compiled Code) at org.apache.cocoon.www.sitemap_xmap.matchN10357(sitemap_xmap.java, Compiled Code) at org.apache.cocoon.www.sitemap_xmap.process(sitemap_xmap.java, Compiled Code) at org.apache.cocoon.www.sitemap_xmap.process(sitemap_xmap.java, Compiled Code) at org.apache.cocoon.sitemap.Handler.process(Handler.java, Compiled Code) at org.apache.cocoon.sitemap.Manager.invoke(Manager.java, Compiled Code) at org.apache.cocoon.sitemap.SitemapManager.process(SitemapManager.java, Compiled Code) at org.apache.cocoon.Cocoon.process(Cocoon.java, Compiled Code) at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java, Compiled Code) at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java, Compiled Code) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java, Compiled Code) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java, Compiled Code) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java, Compiled Code) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java, Compiled Code) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java, Compiled Code) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java, Compiled Code) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java, Compiled Code) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java, Compiled Code) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java, Compiled Code) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java, Compiled Code) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java, Compiled Code) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java, Compiled Code) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java, Compiled Code) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java, Compiled Code) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java, Compiled Code) at java.lang.Thread.run(Thread.java, Compiled Code) Original exception : org.xml.sax.SAXException: Stopping after fatal error: The encoding "MacRoman" is not supported. at org.apache.xerces.framework.XMLParser.reportError(XMLParser.java, Compiled Code) at org.apache.xerces.readers.DefaultEntityHandler.startReadingFromDocument(DefaultEntityHandler.java, Compiled Code) at org.apache.xerces.framework.XMLParser.parseSomeSetup(XMLParser.java, Compiled Code) at org.apache.xerces.framework.XMLParser.parse(XMLParser.java, Compiled Code) at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java, Compiled Code) at org.xml.sax.helpers.XMLFilterImpl.parse(XMLFilterImpl.java, Compiled Code) at org.apache.cocoon.components.language.markup.LogicsheetCodeGenerator.generateCode(LogicsheetCodeGenerator.java, Compiled Code) at org.apache.cocoon.components.language.markup.AbstractMarkupLanguage.generateCode(AbstractMarkupLanguage.java, Compiled Code) at org.apache.cocoon.components.language.generator.ProgramGeneratorImpl.generateResource(ProgramGeneratorImpl.java, Compiled Code) at org.apache.cocoon.components.language.generator.ProgramGeneratorImpl.createResource(ProgramGeneratorImpl.java, Compiled Code) at org.apache.cocoon.components.language.generator.ProgramGeneratorImpl.load(ProgramGeneratorImpl.java, Compiled Code) at org.apache.cocoon.generation.ServerPagesGenerator.setup(ServerPagesGenerator.java, Compiled Code) at org.apache.cocoon.components.pipeline.AbstractEventPipeline.setupPipeline(AbstractEventPipeline.java, Compiled Code) at org.apache.cocoon.components.pipeline.CachingEventPipeline.setup(CachingEventPipeline.java, Compiled Code) at org.apache.cocoon.components.pipeline.CachingEventPipeline.generateKey(CachingEventPipeline.java, Compiled Code) at org.apache.cocoon.components.pipeline.CachingStreamPipeline.process(CachingStreamPipeline.java, Compiled Code) at org.apache.cocoon.www.afringe.sitemap_xmap.matchN10064(sitemap_xmap.java, Compiled Code) at org.apache.cocoon.www.afringe.sitemap_xmap.process(sitemap_xmap.java, Compiled Code) at org.apache.cocoon.www.afringe.sitemap_xmap.process(sitemap_xmap.java, Compiled Code) at org.apache.cocoon.sitemap.Handler.process(Handler.java, Compiled Code) at org.apache.cocoon.sitemap.Manager.invoke(Manager.java, Compiled Code) at org.apache.cocoon.www.sitemap_xmap.matchN10357(sitemap_xmap.java, Compiled Code) at org.apache.cocoon.www.sitemap_xmap.process(sitemap_xmap.java, Compiled Code) at org.apache.cocoon.www.sitemap_xmap.process(sitemap_xmap.java, Compiled Code) at org.apache.cocoon.sitemap.Handler.process(Handler.java, Compiled Code) at org.apache.cocoon.sitemap.Manager.invoke(Manager.java, Compiled Code) at org.apache.cocoon.sitemap.SitemapManager.process(SitemapManager.java, Compiled Code) at org.apache.cocoon.Cocoon.process(Cocoon.java, Compiled Code) at org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java, Compiled Code) at javax.servlet.http.HttpServlet.service(HttpServlet.java, Compiled Code) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java, Compiled Code) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java, Compiled Code) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java, Compiled Code) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java, Compiled Code) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java, Compiled Code) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java, Compiled Code) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java, Compiled Code) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java, Compiled Code) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java, Compiled Code) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java, Compiled Code) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java, Compiled Code) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java, Compiled Code) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java, Compiled Code) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java, Compiled Code) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java, Compiled Code) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java, Compiled Code) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java, Compiled Code) at java.lang.Thread.run(Thread.java, Compiled Code) At 9:51 -0400 18/7/2002, Vadim Gritsenko wrote: > > From: Jesse Reynolds [mailto:[EMAIL PROTECTED]] >> >> Hi >> >> I'm trying to get Xerces 2 (that comes with Cocoon 2.0.2) to parse >> MacRoman encoded xml files. >> >> According to the Xerces FAQ >> (http://xml.apache.org/xerces2-j/features.html) you can run the >> following java code to tell it to recognise and process all character >> encodings suppored by Java. The linux-jdk1.2.2 that I'm using does >> support MacRoman encoded text, so this is, of course, what I want to >> do: >> >> >> import javax.xml.parsers.SAXParser; >> import org.xml.sax.SAXException; >> import org.xml.sax.XMLReader; >> >> SAXParser parser = /* created from SAXParserFactory */; >> XMLReader reader = parser.getXMLReader(); >> try { >> >reader.setFeature("http://xml.org/sax/features/allow-java-encodings", >> true); >> } >> catch (SAXException e) { >> System.err.println("could not set parser feature"); >> } >> >> >> Question is, how the hell to I tell Cocoon (or Tomcat????) to run >> this Java code after loading the Xerces parser? > >Cocoon does not know about this feature ATM. If you don't mind, you can >patch JaxpParser.java to take <allow-java-encodings/> configuration >element and set this feature to the parser. > >Vadim > > >> Is there any easier way to tell Xerces to allow java encodings, eg a >> config file or something??? >> >> Thanks very much >> >> Jesse >> >> -- >> Jesse Reynolds - Virtual Artists Pty Ltd - http://www.va.com.au >> >> Email: jesse (at) va.com.au > Website Development >> Phone: +61 (0)8 8223 2288 > Web & Email Hosting >> Web: http://jesse.va.com.au > Streaming Media Hosting > > >--------------------------------------------------------------------- >Please check that your question has not already been answered in the >FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html> > >To unsubscribe, e-mail: <[EMAIL PROTECTED]> >For additional commands, e-mail: <[EMAIL PROTECTED]> -- Jesse Reynolds - Virtual Artists Pty Ltd - http://www.va.com.au Email: jesse (at) va.com.au > Website Development Phone: +61 (0)8 8223 2288 > Web & Email Hosting Web: http://jesse.va.com.au > Streaming Media Hosting > Telehousing / Colocation --------------------------------------------------------------------- Please check that your question has not already been answered in the FAQ before posting. <http://xml.apache.org/cocoon/faq/index.html> To unsubscribe, e-mail: <[EMAIL PROTECTED]> For additional commands, e-mail: <[EMAIL PROTECTED]>