Re: Barracuda and Jivan
Arno Schatz <[email protected]>
| Newsgroups | gmane.comp.java.enhydra.barracuda.general |
|---|---|
| Message-ID | <[email protected]> |
Hi Jancsi,
I am still looking into that problem. However, I know that the org.w3c.dom.ls package has
changed recently. Yes, the W3C has changed the the interface classes within this package.
Xerces 2.4.0 used the old interfaces, where Xerces 2.5.0+ uses the never ones. Jivan is
based on the older interfaces. Well if I change Jivan to use the never interface, Jivan
applications will break when they are deployed on older system.
On Tomcat the problem is that the Xerces parser from the CATALINA_HOME/common/endorsed
even if the classes are provided by the jivan.jar. So I need to change Jivan so it can
work with 2 different sets of interfaces. Other application server have similar
'endorsed' techniques, causing the same problem.
Tomcat 5 uses Xerces 2.5.0, but Tomcat 4 uses versions pre Xerces 2.5.0. I will work on a
fix to be released as soon as possible. But that will be after Xmas, sorry. If you are
really working over Xmas, you could try to downgrade your version of Xerces to 2.4.0.
-Arno
Jancsi Farkas wrote:
> Hello
>
> First, I take this opportunity to wish everybody a Merry Christmas and a
> Happy New Year :)
>
> Now on my problem:
>
> I'm trying to integrate barracuda with jivan, until now unsuccessfully.
> I keep getting this exception, and I don't know from where to start
> looking for a solution. Anybody has a clue about this?
>
> org.jivan.html.JivanHTMLException:
> java.lang.reflect.InvocationTargetException
> at org.jivan.html.parser.LocationRecorder.invoke(Unknown Source)
> at $Proxy0.startElement(Unknown Source)
> at org.jivan.html.parser.HTMLTagCloser.startElement(Unknown Source)
> at
> org.jivan.cyberneko.html.HTMLScanner$ContentScanner.scanStartElement(Unknown
> Source)
> at org.jivan.cyberneko.html.HTMLScanner$ContentScanner.scan(Unknown
> Source)
> at org.jivan.cyberneko.html.HTMLScanner.scanDocument(Unknown Source)
> at org.jivan.cyberneko.html.HTMLConfiguration.parse(Unknown Source)
> at org.jivan.cyberneko.html.HTMLConfiguration.parse(Unknown Source)
> at org.jivan.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> at org.jivan.html.document.MasterDocument.load(Unknown Source)
> at org.jivan.html.document.DocumentFactory.docManFor(Unknown Source)
> at
> org.enhydra.barracuda.core.util.dom.JivanDOMFactory.getInstance(JivanDOMFactory.java:98)
>
> at
> org.enhydra.barracuda.core.util.dom.DefaultDOMLoader._getDOMFromFile(DefaultDOMLoader.java:192)
>
> at
> org.enhydra.barracuda.core.util.dom.DefaultDOMLoader.getDOM(DefaultDOMLoader.java:105)
>
> at
> org.simple.test.admin.screens.TestScreen$RenderTestHandler.handleViewEvent(TestScreen.java:109)
>
> at
> org.enhydra.barracuda.core.event.DefaultBaseEventListener.handleEvent(DefaultBaseEventListener.java:66)
>
> at
> org.enhydra.barracuda.core.event.DefaultEventDispatcher.notifyListeners(DefaultEventDispatcher.java:415)
>
> at
> org.enhydra.barracuda.core.event.DefaultEventDispatcher.dispatch(DefaultEventDispatcher.java:185)
>
> at
> org.enhydra.barracuda.core.event.DefaultEventDispatcher.dispatchEvent(DefaultEventDispatcher.java:122)
>
> at
> org.enhydra.barracuda.core.event.DefaultEventBroker.dispatchEvent(DefaultEventBroker.java:494)
>
> at
> org.enhydra.barracuda.core.event.ApplicationGateway.handleDefaultExt(ApplicationGateway.java:415)
>
> at
> org.enhydra.barracuda.core.event.ApplicationGateway.handleDefault(ApplicationGateway.java:235)
>
> at
> org.enhydra.barracuda.core.event.ApplicationGateway.doGet(ApplicationGateway.java:728)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
>
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
>
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
>
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.java:191)
>
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.StandardContext.invoke(StandardContext.java:2396)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
>
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
>
> at
> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
>
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
>
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
>
> at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.invokeNext(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:405)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:380)
>
> at
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:533)
>
> at java.lang.Thread.run(Thread.java:536)
> Caused by: java.lang.reflect.InvocationTargetException
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>
> at java.lang.reflect.Method.invoke(Method.java:324)
> ... 54 more
> Caused by: java.lang.NoSuchMethodError:
> org.w3c.dom.ls.DOMBuilderFilter.startElement(Lorg/w3c/dom/Element;)S
> at
> org.jivan.apache.xerces.parsers.AbstractDOMParser.startElement(Unknown
> Source)
> at
> org.jivan.cyberneko.html.filters.DefaultFilter.startElement(Unknown Source)
> ... 58 more
>
>
> This is my code in render part:
> {
> System.out.println("RenderTest");
> DefaultDOMLoader loader = DefaultDOMLoader.getGlobalInstance();
> JivanDOMFactory jfactory = new JivanDOMFactory();
>
> jfactory.setServletContext(context.getConfig().getServletContext());
> loader.setDefaultDOMFactory(jfactory);
> // the exception is thrown somewehere after this line of code
> Document page = loader.getDOM("/WEB-INF/admin/Template.html");
>
> Node node = page.getElementById("Login");
> BTemplate templateComp = new BTemplate();
> templateComp.setView(new DefaultTemplateView(node));
> ViewContext vc=new DefaultViewContext(context);
> templateComp.addModel(new TestModel(context));
>
> try
> {
> templateComp.render(vc);
> }
> catch (RenderException re)
> {
> logger.warn("Render err:"+re);
> }
>
> new DefaultDOMWriter().write(page, context.getResponse());
> }
>
>
>
> Best regards
>
> Jancsi
>
> _______________________________________________
> Barracuda mailing list
> [email protected]
> http://barracudamvc.org/lists/listinfo/barracuda
>
>