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]>