[xmlc] Re: Re: Re: Re: SSI and XMLC

Sasa Bojanic <[email protected]> Thu, 31 Mar 2011 21:53:47 +0200
Newsgroups gmane.comp.java.enhydra.xmlc
Message-ID <[email protected]>
This is a multi-part message in MIME format...

------------=_1301601238-30467-16293
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Yes, when the resource is not within the JAR file (but in the 
WEB-INF\classes folder) the paths with "/../" are working fine...

With your help, we gave up from custom classloader for XMLC, and now 
also use non-singleton DocumentLoader instances (implicitly created by 
XMLCDefferedParsingFactory).
However, we will consider your suggestions in order to solve this SSI 
issue...

Thanks a lot,
Sasa.

  (since you helped us a lot with thi
On 31-Mar-11 21:40, Jacob Kjome wrote:
>
> I see.  That makes more sense, as I don't recall anything having 
> specifically to do with SSI loading having changed between XMLC 2.3.1 
> and 2.3.2 (at least nothing that should affect this scenario).
>
> I suspect, ultimately, that this is a deficiency of JarURLConnection 
> in dealing with paths containing "/../", though I have yet to verify 
> this.  I believe this works fine when it's a non "jar:" URL path, so I 
> think the problem is specific to JarURLConnection.
>
> You could probably work around this either in your custom classloader 
> (where, as I recall, you applied the fix for "jar:" URLs originally) 
> or in a custom document/resource loader.  All you'd need to do is 
> re-write the path of the URL to pre-resolve the ".." parts changing, 
> for instance, this...
>
> jar:file:/D:/apache-tomcat-6.0.29/webapps/airSent/WEB-INF/lib/airSent.jar!/com/lutris/airsent/presentation/customer/../media/TopBanner.ssi 
>
>
> ...to this...
>
> jar:file:/D:/apache-tomcat-6.0.29/webapps/airSent/WEB-INF/lib/airSent.jar!/com/lutris/airsent/presentation/media/TopBanner.ssi 
>
>
>
> That said, this is probably something that XMLC could take care of 
> internally.  I would certainly consider this for the next release if 
> my assumptions pan out.
>
>
> Jake
>
> On Thu, 31 Mar 2011 21:11:06 +0200
>  Sasa Bojanic <[email protected]> wrote:
>> Sorry...it doesn't work with XMLC 2.3-1 as well...
>>
>> Yes, the com/lutris/airsent/presentation/media/TopBanner.ssi is the 
>> right location within the JAR.
>>
>> You can try with the airSent.war from the ZIP file. However, if you 
>> use this WAR as it is, everything works well both with XMLC2.3-1 
>> (which is originally inside the WAR) and with XMLC2.3-2 (when you 
>> replace the XMLC/GNUREGEXP JAR files). The problem occurs when you 
>> pack everything from WEB-INF\classes folder into the JAR file, and 
>> then put this JAR file into WEB-INF\lib folder (and this is the 
>> change we are introducing in our new release). So the problem was 
>> here even in XMLC 2.3-1 but we didn't notice it.
>>
>> Do you think it is an XMLC problem or...?
>>
>> Sasa.
>>
>> On 31-Mar-11 19:44, Jacob Kjome wrote:
>>>
>>> It looks like it's referencing the jar it should exist in, and 
>>> clearly it found the markup file including the SSI, so I don't think 
>>> this is a classloader issue.
>>>
>>> Does the path seem right to you?  That is, does the file in question 
>>> exist in the following relative path within the airSent.jar file?....
>>>
>>> com/lutris/airsent/presentation/media/TopBanner.ssi
>>>
>>> If you can confirm that, I can try to test things out at home 
>>> tonight.  I presume this jar is one of those in the zip file 
>>> containing all the webapps which can be deployed under Tomcat 
>>> Standalone?
>>>
>>>
>>> Jake
>>>
>>> On Thu, 31 Mar 2011 16:31:32 +0200
>>>   Sasa Bojanic <[email protected]> wrote:
>>>> Me again :-)
>>>>
>>>> Just a question...have you changed to XMLC related to Server Side 
>>>> Includes from HTML?
>>>>
>>>> The situation is the following:
>>>>
>>>> HTML file (processed by XMLC) includes another HTML file via 
>>>> relative path:
>>>>
>>>> <!--#include virtual="../media/TopBanner.ssi"-->
>>>>
>>>> When XMLC parses HTML file, I get the following exception (when all 
>>>> the resources are in the JAR file):
>>>>
>>>> java.io.FileNotFoundException: JAR entry 
>>>> com/lutris/airsent/presentation/customer/../media/TopBanner.ssi not 
>>>> found in 
>>>> D:\apache-tomcat-6.0.29\webapps\airSent\WEB-INF\lib\airSent.jar
>>>>           at 
>>>> sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:122)
>>>>           at 
>>>> sun.net.www.protocol.jar.JarURLConnection.getInputStream(JarURLConnection.java:132)
>>>>           at 
>>>> org.enhydra.xml.io.InputSourceOps.openSystemId(InputSourceOps.java:65)
>>>>           at 
>>>> org.enhydra.xml.io.InputSourceOps.open(InputSourceOps.java:85)
>>>>           at 
>>>> org.enhydra.xml.xmlc.misc.SSIParsedStream.readIntoBuffer(SSIParsedStream.java:198)
>>>>           at 
>>>> org.enhydra.xml.xmlc.misc.SSIParsedStream.<init>(SSIParsedStream.java:159)
>>>>           at 
>>>> org.enhydra.xml.xmlc.misc.SSIReader.openSSIInclude(SSIReader.java:153)
>>>>           at 
>>>> org.enhydra.xml.xmlc.misc.SSIReader.processSSIInclude(SSIReader.java:169)
>>>>           at 
>>>> org.enhydra.xml.xmlc.misc.SSIReader.processSSIDirective(SSIReader.java:179)
>>>>           at 
>>>> org.enhydra.xml.xmlc.misc.SSIReader.read(SSIReader.java:228)
>>>>           at 
>>>> org.cyberneko.html.HTMLScanner$CurrentEntity.load(HTMLScanner.java:1772) 
>>>>
>>>>           at 
>>>> org.cyberneko.html.HTMLScanner.skipNewlines(HTMLScanner.java:1522)
>>>>           at 
>>>> org.cyberneko.html.HTMLScanner$ContentScanner.scanCharacters(HTMLScanner.java:2227)
>>>>           at 
>>>> org.cyberneko.html.HTMLScanner$ContentScanner.scan(HTMLScanner.java:1964)
>>>>           at 
>>>> org.cyberneko.html.HTMLScanner.scanDocument(HTMLScanner.java:895)
>>>>           at 
>>>> org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:499)
>>>>           at 
>>>> org.cyberneko.html.HTMLConfiguration.parse(HTMLConfiguration.java:452)
>>>>           at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>>>           at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
>>>>           at 
>>>> org.enhydra.xml.xmlc.parsers.xerces.XercesDOMParser.parse(XercesDOMParser.java:113)
>>>>           at 
>>>> org.enhydra.xml.xmlc.parsers.xerces.XercesHTMLDOMParser.parse(XercesHTMLDOMParser.java:64)
>>>>           at org.enhydra.xml.xmlc.compiler.Parse.parse(Parse.java:291)
>>>>           at 
>>>> org.enhydra.xml.xmlc.deferredparsing.DocumentLoaderImpl.parseDocument(DocumentLoaderImpl.java:405)
>>>>           at 
>>>> org.enhydra.xml.xmlc.deferredparsing.DocumentLoaderImpl.getCacheEntry(DocumentLoaderImpl.java:175)
>>>>           at 
>>>> org.enhydra.xml.xmlc.deferredparsing.DocumentLoaderImpl.getDocument(DocumentLoaderImpl.java:247)
>>>>           at 
>>>> com.lutris.airsent.presentation.customer.LoginHTML.buildDocument(Unknown 
>>>> Source)
>>>>           at 
>>>> com.lutris.airsent.presentation.customer.LoginHTML.<init>(Unknown 
>>>> Source)
>>>>           at 
>>>> com.lutris.airsent.presentation.customer.LoginHTML.<init>(Unknown 
>>>> Source)
>>>>           at 
>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>>>>           at 
>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>>>>           at 
>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>>>>           at 
>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>>>>           at 
>>>> org.enhydra.xml.xmlc.deferredparsing.XMLCDeferredParsingFactory.createObject(XMLCDeferredParsingFactory.java:160)
>>>>           at 
>>>> org.enhydra.xml.xmlc.deferredparsing.XMLCDeferredParsingFactory.doCreate(XMLCDeferredParsingFactory.java:185)
>>>>           at 
>>>> org.enhydra.xml.xmlc.XMLCStdFactory.create(XMLCStdFactory.java:139)
>>>>           at 
>>>> com.lutris.airsent.presentation.customer.Login.showPage(Unknown 
>>>> Source)
>>>>           at 
>>>> com.lutris.airsent.presentation.customer.Login.handleDefault(Unknown Source) 
>>>>
>>>>           at 
>>>> com.lutris.airsent.presentation.BasePO.handleEvent(Unknown Source)
>>>>           at com.lutris.airsent.presentation.BasePO.run(Unknown 
>>>> Source)
>>>>           at 
>>>> com.lutris.appserver.server.httpPresentation.HttpPresentationManager.runPresentationObj(Unknown 
>>>> Source)
>>>>           at 
>>>> com.lutris.appserver.server.httpPresentation.HttpPresentationManager.Run(Unknown 
>>>> Source)
>>>>           at 
>>>> com.lutris.appserver.server.httpPresentation.servlet.HttpPresentationServlet.serviceDirect(Unknown 
>>>> Source)
>>>>           at 
>>>> com.lutris.appserver.server.httpPresentation.servlet.HttpPresentationServlet.service(Unknown 
>>>> Source)
>>>>           at 
>>>> javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>>>           at 
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>>>           at 
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>           at 
>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>>>           at 
>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>>>           at 
>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>>>           at 
>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>>>           at 
>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>>>           at 
>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
>>>>           at 
>>>> org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861)
>>>>           at 
>>>> org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
>>>>           at 
>>>> org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584) 
>>>>
>>>>           at java.lang.Thread.run(Thread.java:662)
>>>> org.enhydra.xml.xmlc.XMLCError: Couldn't load XMLC class
>>>>
>>>>
>>>> Just to mention, like always with XMLC2.3-1 it worked...maybe 
>>>> because our "magical" classloader...but can't be sure.
>>>>
>>>> Greetings,
>>>> Sasa.
>>>
>>
>


------------=_1301601238-30467-16293
Content-Type: text/plain; charset="UTF-8"; name="message-footer.txt"
Content-Disposition: inline; filename="message-footer.txt"
Content-Transfer-Encoding: quoted-printable


--
You receive this message as a subscriber of the [email protected] mailing list=
.
To unsubscribe: mailto:[email protected]
For general help: mailto:[email protected]?subject=3Dhelp
OW2 mailing lists service home page: http://www.ow2.org/wws

------------=_1301601238-30467-16293--