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
> 
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.