I would say that oracle hasn't interpreted the specification strictly but incorrectly. Ie they are wrong and fuc#$ up - again.
I've been doing this kind of resource loading for years - loading icons and such from swing applications as well as variety of others. I've managed to keep oracle out of my software except when it comes to storing/retrieving relational data so I've not ever run in to this problem. On 5/30/07, Jan Vissers <[EMAIL PROTECTED]> wrote:
Reading specification of getResource() ... http://java.sun.com/j2se/1.4.2/docs/api/java/lang/ClassLoader.html#getResource(java.lang.String) "Finds the resource with the given name. A resource is some data (images, audio, text, etc) that can be accessed by class code in a way that is independent of the location of the code." What I am seeing here is that getResource(java.lang.String) on a "directory" contained in a jar file, will result in "null" (on OC4J 9.0.4/10.1.2.xxx). Does this mean that Oracle has taken spec very strictly and doesn't "allow" directories being "get" like this? -J. Jesse Kuhnert wrote: > I'm not sure. Only the wonderful oracle java developers know for sure > I'm > guessing. > > You can try messing with that or searching oracle related things for > configuring / changing the classloader settings. Tapestry will > ultimately > defer class (and class resource) resolution up to whatever class > loader it > is running in - so it clearly has to be something oracle is f$#-ing up - > again. > > On 5/30/07, Jan Vissers <[EMAIL PROTECTED]> wrote: >> >> The ClassLoader held by org.apache.hivemind.impl.DefaultClassResolver >> has this: >> >> [ClassLoader: >> [[D:\ora\ocj10_1_2_0_2\j2ee\home\applications\eva\eva- >> web-1.0.0\WEB-INF\classes], >> [D:\ora\ocj10_1_2_0_2\j2ee\home\applications\eva\eva- >> web-1.0.0\WEB-INF\lib\backport-util-concurrent-4.1.1.jar >> archive], >> [D:\ora\ocj10_1_2_0_2\j2ee\home\applications\eva\eva- >> web-1.0.0\WEB-INF\lib\commons-codec-1.3.jar >> archive], >> [D:\ora\ocj10_1_2_0_2\j2ee\home\applications\eva\eva- >> web-1.0.0\WEB-INF\lib\commons-io-1.3.1.jar >> archive], >> [D:\ora\ocj10_1_2_0_2\j2ee\home\applications\eva\eva- >> web-1.0.0\WEB-INF\lib\commons-lang-2.2.jar >> archive], >> [D:\ora\ocj10_1_2_0_2\j2ee\home\applications\eva\eva- >> web-1.0.0\WEB-INF\lib\commons-logging-1.0.3.jar >> archive], >> [D:\ora\ocj10_1_2_0_2\j2ee\home\applications\eva\eva- >> web-1.0.0\WEB-INF\lib\hivemind-lib-1.1.1.jar >> archive], >> [D:\ora\ocj10_1_2_0_2\j2ee\home\applications\eva\eva- >> web-1.0.0\WEB-INF\lib\hivemind-oc4j-1.1.1.jar >> archive], >> [D:\ora\ocj10_1_2_0_2\j2ee\home\applications\eva\eva- >> web-1.0.0\WEB-INF\lib\jakarta-oro-2.0.8.jar >> archive], >> [D:\ora\ocj10_1_2_0_2\j2ee\home\applications\eva\eva- >> web-1.0.0\WEB-INF\lib\javassist-3.0.jar >> archive], >> [D:\ora\ocj10_1_2_0_2\j2ee\home\applications\eva\eva- >> web-1.0.0\WEB-INF\lib\ognl-2.6.9.jar >> archive], >> [D:\ora\ocj10_1_2_0_2\j2ee\home\applications\eva\eva- >> web-1.0.0\WEB-INF\lib\tapestry-framework-4.1.1.jar >> archive]]] >> >> '/dojo/' is in tapestry-framework-4.1.1.jar - maybe I am missing some >> basic understanding here, but >> why the hell is '/dojo' not found? >> >> -J. >> >> >> Jan Vissers wrote: >> > Well - okay then... >> > let me rephrase my question - is there any known record of people >> > using T4.1.1 on OC4J 9.0.4 or OC4J 10.1.2.xxx >> > >> > Thx, >> > -J. >> > >> > Jesse Kuhnert wrote: >> >> Yep. Sounds like oracle is messing with your classloader. I love >> >> oracle >> >> java software. I love oracle java software. >> >> >> >> On 5/30/07, Jan Vissers <[EMAIL PROTECTED]> wrote: >> >>> >> >>> Digging deeper, and deeper... >> >>> >> >>> In "DefaultClassResolver" this method: >> >>> >> >>> public URL getResource(String name) >> >>> { >> >>> String stripped = removeLeadingSlash(name); >> >>> >> >>> URL result = _loader.getResource(stripped); >> >>> >> >>> return result; >> >>> } >> >>> >> >>> returns "null" for 'dojo/' ... >> >>> smells like a class loading issue, doesn't it.... >> >>> >> >>> any ideas? >> >>> -J. >> >>> >> >>> Jan Vissers wrote: >> >>> > Checking the (Tapestry) code: >> >>> > >> >>> > public IAsset createAbsoluteAsset(String path, Locale locale, >> >>> Location >> >>> > location) >> >>> > { >> >>> > Resource base = new ClasspathResource(_classResolver, >> path); >> >>> > Resource localized = _localizer.findLocalization(base, >> >>> locale); >> >>> > >> >>> > if (localized == null) >> >>> > throw new >> >>> > ApplicationRuntimeException( AssetMessages.missingClasspathResource >> >>> (path), >> >>> > location, null); >> >>> > >> >>> > return createAsset(localized, location); >> >>> > } >> >>> > >> >>> > _localizer.findLocalization(base, locale); >> >>> > Returns "null" for '/dojo' ... why would this happen? >> >>> > >> >>> > Thanks, >> >>> > -J. >> >>> > >> >>> > Jan Vissers wrote: >> >>> >> Hi, >> >>> >> >> >>> >> I'm starting a new project for a customer of ours and want to use >> >>> >> Tapestry 4.1.1 on Oracle's J2EE container - OC4J. >> >>> >> Having tested various aspects of this T version on 10.1.3 - I'm >> >>> >> pretty keen on using this version, however there are issues... >> >>> >> >> >>> >> Firstly I ran into a known issue with Hivemind's URLResource >> >>> class on >> >>> >> OC4J 9.0.4/10.1.2.xxx. >> >>> >> I used a proposed hack to fix this issue. But now when I drop a >> >>> Shell >> >>> >> component on a form, I get this error: >> >>> >> >> >>> >> Caused by: org.apache.hivemind.ApplicationRuntimeException: >> Missing >> >>> >> classpath resource '/dojo/'. >> >>> >> [classpath:/org/apache/tapestry/html/Shell.jwc, line 179, column >> 61] >> >>> >> at >> >>> >> >> org.apache.tapestry.asset.ClasspathAssetFactory.createAbsoluteAsset >> ( >> >>> ClasspathAssetFactory.java:61) >> >>> >> >> >>> >> at >> >>> >> >> >>> >> $AssetFactory_112dd0124f3.createAbsoluteAsset($AssetFactory_112dd0124f3.java) >> >> >>> >> >>> >> >> >>> >> at >> >>> >> org.apache.tapestry.asset.AssetSourceImpl.findAsset( >> >>> AssetSourceImpl.java:84) >> >>> >> >> >>> >> at >> >>> $AssetSource_112dd0124a7.findAsset($AssetSource_112dd0124a7.java) >> >>> >> at >> >>> >> org.apache.tapestry.pageload.PageLoader.convertAsset( >> PageLoader.java >> >>> :695) >> >>> >> >> >>> >> at >> >>> >> >> >>> >> org.apache.tapestry.pageload.PageLoader.addAssets(PageLoader.java:670) >> >>> >> at >> >>> >> org.apache.tapestry.pageload.PageLoader.constructComponent( >> >>> PageLoader.java:415) >> >>> >> >> >>> >> at >> >>> >> org.apache.tapestry.pageload.PageLoader.createImplicitComponent( >> >>> PageLoader.java:478) >> >>> >> >> >>> >> at >> >>> >> >> >>> >> $IPageLoader_112dd0124a3.createImplicitComponent($IPageLoader_112dd0124a3.java) >> >> >>> >> >>> >> >> >>> >> at >> >>> >> >> >>> >> $IPageLoader_112dd0124a4.createImplicitComponent($IPageLoader_112dd0124a4.java) >> >> >>> >> >>> >> >> >>> >> at >> >>> >> >> >>> >> org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.createImplicitComponent >> >> >>> >> >>> (ComponentTemplateLoaderLogic.java:218) >> >>> >> >> >>> >> at >> >>> >> >> >>> >> org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.process >> ( >> >>> ComponentTemplateLoaderLogic.java:172) >> >>> >> >> >>> >> at >> >>> >> >> >>> >> org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.process >> ( >> >>> ComponentTemplateLoaderLogic.java:111) >> >>> >> >> >>> >> at >> >>> >> >> >>> >> org.apache.tapestry.services.impl.ComponentTemplateLoaderLogic.loadTemplate >> >> >>> >> >>> (ComponentTemplateLoaderLogic.java:88) >> >>> >> >> >>> >> at >> >>> >> >> >>> >> org.apache.tapestry.services.impl.ComponentTemplateLoaderImpl.loadTemplate >> >> >>> >> >>> (ComponentTemplateLoaderImpl.java:61) >> >>> >> >> >>> >> at >> >>> >> >> >>> >> $ComponentTemplateLoader_112dd0124ad.loadTemplate($ComponentTemplateLoader_112dd0124ad.java) >> >> >>> >> >>> >> >> >>> >> at >> >>> >> org.apache.tapestry.pageload.PageLoader.loadTemplateForComponent ( >> >>> PageLoader.java:637) >> >>> >> >> >>> >> at >> >>> >> >> >>> >> org.apache.tapestry.BaseComponent.readTemplate(BaseComponent.java:77) >> >>> >> at >> >>> >> org.apache.tapestry.BaseComponent.finishLoad(BaseComponent.java >> :107) >> >>> >> at $Exception_5.finishLoad($Exception_5.java) >> >>> >> at >> >>> >> org.apache.tapestry.pageload.PageLoader.constructComponent( >> >>> PageLoader.java:425) >> >>> >> >> >>> >> at >> >>> >> >> >>> >> org.apache.tapestry.pageload.PageLoader.loadPage(PageLoader.java:600) >> >>> >> at >> >>> $IPageLoader_112dd0124a3.loadPage($IPageLoader_112dd0124a3.java) >> >>> >> at >> >>> $IPageLoader_112dd0124a4.loadPage($IPageLoader_112dd0124a4.java) >> >>> >> at >> >>> >> org.apache.tapestry.pageload.PageSource.getPage(PageSource.java >> :119) >> >>> >> at >> >>> $IPageSource_112dd012406.getPage($IPageSource_112dd012406.java) >> >>> >> at >> >>> >> >> >>> org.apache.tapestry.engine.RequestCycle.loadPage(RequestCycle.java >> :248) >> >>> >> at >> >>> >> >> >>> >> org.apache.tapestry.engine.RequestCycle.getPage(RequestCycle.java:235) >> >>> >> at >> >>> >> >> org.apache.tapestry.error.ExceptionPresenterImpl.presentException( >> >>> ExceptionPresenterImpl.java:42) >> >>> >> >> >>> >> ... 30 more >> >>> >> >> >>> >> >> >>> >> Can somebody enlighten me what's wrong here and whether or not >> this >> >>> >> is a known issue? >> >>> >> I sure as ***** hope I don't have to hack my way around this >> >>> >> (probably Oracle related) issue also... >> >>> >> >> >>> >> Thanks, >> >>> >> -J. >> >>> >> >> >>> >> >> >>> >> >> >>> >> --------------------------------------------------------------------- >> >>> >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> >>> >> For additional commands, e-mail: [EMAIL PROTECTED] >> >>> >> >> >>> >> >> >>> >> >> >>> > >> >>> >> >>> -- >> >>> Cumquat Information Technology >> >>> De Dreef 19 >> >>> 3706 BR Zeist >> >>> T +31 (0)30 - 6940490 >> >>> F +31 (0)30 - 6940499 >> >>> W http://www.cumquat.nl >> >>> >> >>> E [EMAIL PROTECTED] >> >>> M +31 6 51 169 556 >> >>> B http://www.cumquat.nl/technology_atom10.xml >> >>> >> >>> >> >>> >> >>> >> --------------------------------------------------------------------- >> >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >> >>> For additional commands, e-mail: [EMAIL PROTECTED] >> >>> >> >>> >> >> >> >> >> > >> >> -- >> Cumquat Information Technology >> De Dreef 19 >> 3706 BR Zeist >> T +31 (0)30 - 6940490 >> F +31 (0)30 - 6940499 >> W http://www.cumquat.nl >> >> E [EMAIL PROTECTED] >> M +31 6 51 169 556 >> B http://www.cumquat.nl/technology_atom10.xml >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > -- Cumquat Information Technology De Dreef 19 3706 BR Zeist T +31 (0)30 - 6940490 F +31 (0)30 - 6940499 W http://www.cumquat.nl E [EMAIL PROTECTED] M +31 6 51 169 556 B http://www.cumquat.nl/technology_atom10.xml --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- Jesse Kuhnert Tapestry/Dojo team member/developer Open source based consulting work centered around dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com