You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by Serge Huber <sh...@jahia.com> on 2004/06/21 16:23:11 UTC

[J2] Using FileSystem PAM from web app class loader

Hi,

I'm having some problem using the FileSystemPAM from within a web app 
context (seems to work in the tests, which use the system class loader).

Basically I get the following exception :

java.lang.InternalError: Can't instantiate Preferences factory 
java.lang.ClassNotFoundException: 
org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl

         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
         at 
org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
         at 
org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
         at 
org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
         at org.apache.commons.digester.Digester.endElement(Digester.java:1058)
         at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
Source)
         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
         at 
org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
         at 
org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
         at 
org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
         at 
org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
         at 
org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)

I looked at the JDK's source and found the following code when loading the 
PreferenceFactory implementation :

             factory = (PreferencesFactory)
                Class.forName(factoryName, false,
                              ClassLoader.getSystemClassLoader()).newInstance();

If this means what I think it does, the preference factory may only be 
loaded from the root class loader, which means that we would need to deploy 
the jetspeed-prefs*.jar into Tomcat's classpath or something.

Is this analysis correct ? If so, how to we get around this ?

Regards,
   Serge Huber.



- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
www.jahia.org : A collaborative source CMS and Portal Server 



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org


Re: [J2] Using FileSystem PAM from web app class loader

Posted by Scott T Weaver <sc...@binary-designs.net>.
Ate and Serge,

Ate, I am seeing the identical issue here that you are and am trying to
fix it.  I am glad you are experiencing the same issue, because I
thought I was going mad ;)

I am working on this right now so I will hopefully have a solution in
the next couple of hours.

On Mon, 2004-06-21 at 13:27, Ate Douma wrote:
> Serge and Scott,
> 
> I can confirm to have similar problems. Not the same though.
> If I do a allClean allBuild quickStart and then start Tomcat
> it all works perfectly. I can access all the portlets without any problem.
> It goes wrong though when I stop/start Tomcat again. Then I get the following
> stacktrace (in jetspeed.log and on screen) when opening the J2 portal site again:
> 
> 2004-06-21 19:20:28,515 [http8080-Processor3] DEBUG org.apache.jetspeed.container.JetspeedContainerServlet - Rendering: 
> Portlet Class = org.apache.jetspeed.portlets.layout.MultiColumnPortlet
> 2004-06-21 19:20:28,515 [http8080-Processor3] ERROR org.apache.jetspeed.container.JetspeedContainerServlet - Error 
> rendering portlet "VelocityTwoColumns": java.lang.NoClassDefFoundError
> java.lang.NoClassDefFoundError
> 	at org.apache.jetspeed.components.portletentity.PortletEntityImpl.getPreferenceSet(PortletEntityImpl.java:128)
> 	at org.apache.pluto.core.impl.PortletPreferencesImpl.<init>(PortletPreferencesImpl.java:72)
> 	at org.apache.pluto.factory.impl.PortletPreferencesFactoryImpl.getPortletPreferences(PortletPreferencesFactoryImpl.java:39)
> 	at org.apache.pluto.factory.PortletObjectAccess.getPortletPreferences(PortletObjectAccess.java:116)
> 	at org.apache.pluto.core.impl.RenderRequestImpl.getPreferences(RenderRequestImpl.java:74)
> 	at org.apache.jetspeed.portlets.layout.LayoutPortlet.doView(LayoutPortlet.java:72)
> 	at org.apache.jetspeed.portlets.layout.MultiColumnPortlet.doView(MultiColumnPortlet.java:82)
> 	at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:247)
> 	at javax.portlet.GenericPortlet.render(GenericPortlet.java:175)
> 	at org.apache.jetspeed.container.JetspeedContainerServlet.doGet(JetspeedContainerServlet.java:214)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> 	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
> 	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:575)
> 	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:498)
> 	at org.apache.jetspeed.container.invoker.ServletPortletInvoker.invoke(ServletPortletInvoker.java:208)
> 	at org.apache.jetspeed.container.invoker.ServletPortletInvoker.render(ServletPortletInvoker.java:122)
> 	at org.apache.pluto.PortletContainerImpl.renderPortlet(PortletContainerImpl.java:103)
> 	at org.apache.jetspeed.container.JetspeedPortletContainerWrapper.renderPortlet(JetspeedPortletContainerWrapper.java:97)
> 	at org.apache.jetspeed.aggregator.impl.PortletRendererImpl.renderNow(PortletRendererImpl.java:95)
> 	at org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.build(PageAggregatorImpl.java:231)
> 	at org.apache.jetspeed.aggregator.AggregatorValve.invoke(AggregatorValve.java:47)
> 	at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:255)
> 	at org.apache.jetspeed.pipeline.valve.impl.ActionValveImpl.invoke(ActionValveImpl.java:107)
> 	at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:255)
> 	at org.apache.jetspeed.container.ContainerValve.invoke(ContainerValve.java:76)
> 	at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:255)
> 	at org.apache.jetspeed.profiler.impl.ProfilerValveImpl.invoke(ProfilerValveImpl.java:57)
> 	at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:255)
> 	at org.apache.jetspeed.security.impl.SecurityValveImpl.invoke(SecurityValveImpl.java:89)
> 	at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:255)
> 	at org.apache.jetspeed.capabilities.impl.CapabilityValveImpl.invoke(CapabilityValveImpl.java:132)
> 	at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:255)
> 	at org.apache.jetspeed.localization.impl.LocalizationValveImpl.invoke(LocalizationValveImpl.java:62)
> 	at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:255)
> 	at org.apache.jetspeed.pipeline.JetspeedPipeline.invoke(JetspeedPipeline.java:237)
> 	at org.apache.jetspeed.engine.JetspeedEngine.service(JetspeedEngine.java:276)
> 	at org.apache.jetspeed.engine.JetspeedServlet.doGet(JetspeedServlet.java:207)
> 	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:256)
> 	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.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)
> 	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.StandardContext.invoke(StandardContext.java:2422)
> 	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:171)
> 	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
> 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)
> 	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:199)
> 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
> 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)
> 	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)
> 	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
> 	at java.lang.Thread.run(Thread.java:534)
> 
> My setup is almost the same as from Scott. But, maybe important, I use a more recent JDK:
> 
> Latest J2 CVS HEAD
> Windows XP SP1
> Sun J2SE 1.4.2_04
> Tomcat 4.1.30
> Oracle 9i
> 
> 
> Serge Huber wrote:
> > 
> > I forgot to mention my environment :
> > 
> > - latest J2 from CVS HEAD, including Ate's properties change
> > - Windows XP SP 1
> > - Sun JDK 1.4.2_01
> > - Tomcat 4.1.30
> > 
> > My guess about this problem is that as the JVM's Preferences impl uses 
> > the system class loader (see my previous mail), we cannot access the 
> > PreferencesFactoryImpl which is in a child class loader (the webapp's 
> > class loader). Now I would love to be able to propose a workaround, but 
> > since this seems to be a problem with the JDK's implementation and 
> > doesn't offer an alternate way to set a class loader, I'm not sure there 
> > are any options...
> > 
> > Anyway, it might also just be my setup. Can somebody reproduce this 
> > problem ?
> > 
> > Regards,
> >   Serge Huber.
> > 
> > At 18:44 21.06.2004, you wrote:
> > 
> >> Scott,
> >>
> >> I did a complete checkout of J2, then :
> >>
> >> allClean
> >> allBuild
> >> quickStart
> >>
> >> and then started Tomcat, here is the log of what happened :
> >>
> >>  INFO: Preparing to deploy portlet app "HW_App"
> >>  INFO: Deploying portlet applicaion WAR demo.war
> >>  INFO: Portlet application deployment target directory is 
> >> C:\java\technologies\jakarta-tomcat\webapps/HW_App
> >> java.lang.InternalError: Can't instantiate Preferences factory 
> >> java.lang.ClassNotFoundException: 
> >> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> >>         at 
> >> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
> >>
> >>         at 
> >> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
> >>
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
> >>
> >>         at 
> >> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> >>         at 
> >> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> >> Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> >> Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> >>   Source)
> >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
> >> Source)
> >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
> >> Source)
> >>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
> >> Source)
> >>         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
> >>
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
> >>
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
> >>
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
> >>
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
> >>
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76) 
> >>
> >>         at 
> >> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114) 
> >>
> >>         at 
> >> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64) 
> >>
> >>         at 
> >> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125) 
> >>
> >>         at 
> >> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88) 
> >>
> >> ERROR: Unable to register portlet application, HW_App, through the 
> >> portlet registry: 
> >> org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
> >> not
> >> unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
> >> Preferences factory java.lang.ClassNotFoundException: 
> >> org.apache.jetspeed.prefs.impl.Preferenc
> >> esFactoryImpl
> >> org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
> >> not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
> >> Preferences factory
> >>  java.lang.ClassNotFoundException: 
> >> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172) 
> >>
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
> >>
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
> >>
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
> >>
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
> >>
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76) 
> >>
> >>         at 
> >> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114) 
> >>
> >>         at 
> >> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64) 
> >>
> >>         at 
> >> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125) 
> >>
> >>         at 
> >> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88) 
> >>
> >> Caused by: java.lang.InternalError: Can't instantiate Preferences 
> >> factory java.lang.ClassNotFoundException: 
> >> org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
> >> l
> >>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> >>         at 
> >> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
> >>
> >>         at 
> >> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
> >>
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
> >>
> >>         at 
> >> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> >>         at 
> >> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> >> Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> >> Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> >>   Source)
> >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
> >> Source)
> >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
> >> Source)
> >>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
> >> Source)
> >>         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
> >>
> >>         ... 9 more
> >> ERROR: Unexpected exception deploying portlet application: 
> >> org.apache.jetspeed.components.portletregistry.RegistryException: 
> >> Unable to register portlet applicat
> >> ion, HW_App, through the portlet registry: 
> >> org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
> >> not unmarshal portlet.xml. java.lang.InternalE
> >> rror: Can't instantiate Preferences factory 
> >> java.lang.ClassNotFoundException: 
> >> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl attempting 
> >> rollback...
> >> org.apache.jetspeed.components.portletregistry.RegistryException: 
> >> Unable to register portlet application, HW_App, through the portlet 
> >> registry: org.apache.jetsp
> >> eed.tools.pamanager.PortletApplicationException: Could not unmarshal 
> >> portlet.xml. java.lang.InternalError: Can't instantiate Preferences 
> >> factory java.lang.Class
> >> NotFoundException: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383) 
> >>
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
> >>
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
> >>
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76) 
> >>
> >>         at 
> >> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114) 
> >>
> >>         at 
> >> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64) 
> >>
> >>         at 
> >> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125) 
> >>
> >>         at 
> >> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88) 
> >>
> >> Caused by: 
> >> org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
> >> not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
> >> Preferen
> >> ces factory java.lang.ClassNotFoundException: 
> >> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172) 
> >>
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
> >>
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
> >>
> >>         ... 7 more
> >> Caused by: java.lang.InternalError: Can't instantiate Preferences 
> >> factory java.lang.ClassNotFoundException: 
> >> org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
> >> l
> >>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> >>         at 
> >> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
> >>
> >>         at 
> >> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
> >>
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
> >>
> >>         at 
> >> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> >>         at 
> >> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> >> Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> >> Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> >>   Source)
> >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
> >> Source)
> >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
> >> Source)
> >>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
> >> Source)
> >>         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
> >>
> >>         ... 9 more
> >>  INFO: Exception in deploy. Rollback of application deployment...
> >>  INFO: Rollback: Remove 
> >> C:\java\technologies\jakarta-tomcat\webapps/HW_App and all 
> >> sub-directories.
> >> ERROR: org.apache.jetspeed.deployment.DeploymentException: Error 
> >> deploying portlet app: 
> >> org.apache.jetspeed.tools.pamanager.PortletApplicationException: org.apa
> >> che.jetspeed.components.portletregistry.RegistryException: Unable to 
> >> register portlet application, HW_App, through the portlet registry: 
> >> org.apache.jetspeed.too
> >> ls.pamanager.PortletApplicationException: Could not unmarshal 
> >> portlet.xml. java.lang.InternalError: Can't instantiate Preferences 
> >> factory java.lang.ClassNotFoun
> >> dException: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >> org.apache.jetspeed.deployment.DeploymentException: Error deploying 
> >> portlet app: 
> >> org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
> >> org.apache.jet
> >> speed.components.portletregistry.RegistryException: Unable to register 
> >> portlet application, HW_App, through the portlet registry: 
> >> org.apache.jetspeed.tools.pama
> >> nager.PortletApplicationException: Could not unmarshal portlet.xml. 
> >> java.lang.InternalError: Can't instantiate Preferences factory 
> >> java.lang.ClassNotFoundExcept
> >> ion: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>         at 
> >> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:128) 
> >>
> >>         at 
> >> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64) 
> >>
> >>         at 
> >> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125) 
> >>
> >>         at 
> >> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88) 
> >>
> >> Caused by: 
> >> org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
> >> org.apache.jetspeed.components.portletregistry.RegistryException: 
> >> Unable to register
> >>  portlet application, HW_App, through the portlet registry: 
> >> org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
> >> not unmarshal portlet.xml. ja
> >> va.lang.InternalError: Can't instantiate Preferences factory 
> >> java.lang.ClassNotFoundException: 
> >> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:319) 
> >>
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
> >>
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76) 
> >>
> >>         at 
> >> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114) 
> >>
> >>         ... 3 more
> >> Caused by: 
> >> org.apache.jetspeed.components.portletregistry.RegistryException: 
> >> Unable to register portlet application, HW_App, through the portlet 
> >> registry: org.a
> >> pache.jetspeed.tools.pamanager.PortletApplicationException: Could not 
> >> unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
> >> Preferences factory java
> >> .lang.ClassNotFoundException: 
> >> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383) 
> >>
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
> >>
> >>         ... 6 more
> >> Caused by: 
> >> org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
> >> not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
> >> Preferen
> >> ces factory java.lang.ClassNotFoundException: 
> >> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172) 
> >>
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
> >>
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
> >>
> >>         ... 7 more
> >> Caused by: java.lang.InternalError: Can't instantiate Preferences 
> >> factory java.lang.ClassNotFoundException: 
> >> org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
> >> l
> >>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> >>         at 
> >> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
> >>
> >>         at 
> >> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
> >>
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
> >>
> >>         at 
> >> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> >>         at 
> >> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> >> Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> >> Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> >>   Source)
> >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
> >> Source)
> >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
> >> Source)
> >>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
> >> Source)
> >>         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
> >>
> >>         ... 9 more
> >>  INFO: Loading portlet application from web archive 
> >> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\jetspeed-layouts.war 
> >>
> >>  INFO: Preparing to deploy portlet app "jetspeed"
> >>  INFO: jetspeed-layouts.war will be registered as a local portlet 
> >> applicaiton.
> >>  INFO: Portlet application deployment target directory is 
> >> jetspeed/jetspeed
> >>  INFO: Did not load exteneded metadata as it most likely does not 
> >> exist.  org.apache.commons.vfs.FileSystemException: Could not read 
> >> from "jar:file://C:/java/te
> >> chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/jetspeed-portlet.xml" 
> >> because it is a not a file.
> >>  INFO: Loading web.xml into memory....
> >>  INFO: Saving the portlet.xml in the registry...
> >>  INFO: Committing registry changes...
> >>  INFO: FileSystem deployment done.
> >>  INFO: Adding 
> >> jar:file://C:/java/technologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/classes
> >> to class path.
> >>  INFO: Portlet app "jetspeed" successfuly deployed.
> >>  INFO: Loading portlet application from web archive 
> >> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\pam.war 
> >>
> >>  INFO: Preparing to deploy portlet app "pam"
> >>  INFO: Deploying portlet applicaion WAR pam.war
> >>  INFO: Portlet application deployment target directory is 
> >> C:\java\technologies\jakarta-tomcat\webapps/pam
> >> Writing out infused web.xml for pam
> >>  INFO: Loading web.xml into memory....
> >>  INFO: Saving the portlet.xml in the registry...
> >>  INFO: Committing registry changes...
> >>  INFO: FileSystem deployment done.
> >>  INFO: Catalina deployment response: OK - Application installTe pour 
> >> le chemin de contexte /pam
> >>
> >>  INFO: Portlet app "pam" successfuly deployed.
> >>  INFO: Loading portlet application from web archive 
> >> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\security.war 
> >>
> >>  INFO: Preparing to deploy portlet app "security"
> >>  INFO: Deploying portlet applicaion WAR security.war
> >>  INFO: Portlet application deployment target directory is 
> >> C:\java\technologies\jakarta-tomcat\webapps/security
> >> Writing out infused web.xml for security
> >>  INFO: Loading web.xml into memory....
> >>  INFO: Saving the portlet.xml in the registry...
> >>  INFO: Committing registry changes...
> >>  INFO: FileSystem deployment done.
> >>  INFO: Catalina deployment response: OK - Application installTe pour 
> >> le chemin de contexte /security
> >>
> >>  INFO: Portlet app "security" successfuly deployed.
> >>  INFO: Loading portlet application from web archive 
> >> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\struts-demo.war 
> >>
> >>  INFO: Preparing to deploy portlet app "struts-demo"
> >>  INFO: Deploying portlet applicaion WAR struts-demo.war
> >>  INFO: Portlet application deployment target directory is 
> >> C:\java\technologies\jakarta-tomcat\webapps/struts-demo
> >> Writing out infused web.xml for struts-demo
> >>  INFO: Did not load exteneded metadata as it most likely does not 
> >> exist.  org.apache.commons.vfs.FileSystemException: Could not read 
> >> from "jar:file://C:/java/te
> >> chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/struts-demo.war!/WEB-INF/jetspeed-portlet.xml" 
> >> because it is a not a file.
> >>  INFO: Loading web.xml into memory....
> >>  INFO: Saving the portlet.xml in the registry...
> >>  INFO: Committing registry changes...
> >>  INFO: FileSystem deployment done.
> >>  INFO: Catalina deployment response: OK - Application installTe pour 
> >> le chemin de contexte /struts-demo
> >>
> >>  INFO: Portlet app "struts-demo" successfuly deployed.
> >>
> >> So it seems that even within the J2 webapp there is a problem with the 
> >> class loading of the preference factory. What is strange is that some 
> >> PAs deployed, but I guess they don't use any preferences ?
> >>
> >> Regards,
> >>   Serge Huber.
> >>
> >> At 16:43 21.06.2004, you wrote:
> >>
> >>> Hi Scott,
> >>>
> >>> Actually I'm calling the FileSystemPAM from my own deployer, within 
> >>> Jahia. Maybe I'm missing something in my deployment ? I have the 
> >>> jetspeed-prefs*.jar in the WEB-INF/lib directory, along with all of 
> >>> J2, and I updated the assembly script a few hours ago.
> >>>
> >>> I didn't test with auto-deploy, but I could to see if it works better.
> >>>
> >>> Regards,
> >>>   Serge...
> >>>
> >>> At 16:31 21.06.2004, you wrote:
> >>>
> >>>> Hi Serge,
> >>>>
> >>>>
> >>>> Is this exception coming from auto-deployment?  Because I am not having
> >>>> any issues with deployment.  I made PreferenceProviderImpl Startable so
> >>>> this wouldn't happen, maybe this doesn't address all possible scenarios
> >>>> though.
> >>>>
> >>>>
> >>>> On Mon, 2004-06-21 at 10:23, Serge Huber wrote:
> >>>> > Hi,
> >>>> >
> >>>> > I'm having some problem using the FileSystemPAM from within a web app
> >>>> > context (seems to work in the tests, which use the system class 
> >>>> loader).
> >>>> >
> >>>> > Basically I get the following exception :
> >>>> >
> >>>> > java.lang.InternalError: Can't instantiate Preferences factory
> >>>> > java.lang.ClassNotFoundException:
> >>>> > org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>>> >
> >>>> >          at 
> >>>> java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> >>>> >          at
> >>>> > 
> >>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
> >>>>
> >>>> >          at
> >>>> > 
> >>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
> >>>>
> >>>> >          at
> >>>> > 
> >>>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
> >>>>
> >>>> >          at 
> >>>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> >>>> >          at 
> >>>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
> >>>> > Source)
> >>>> >          at
> >>>> > 
> >>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> >>>>
> >>>> > Source)
> >>>> >          at
> >>>> > 
> >>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> >>>>
> >>>> > Source)
> >>>> >          at
> >>>> > 
> >>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> >>>>
> >>>> > Source)
> >>>> >          at 
> >>>> org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> >>>> >          at 
> >>>> org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>>> >          at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >>>> >          at 
> >>>> org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> >>>> >          at 
> >>>> org.apache.commons.digester.Digester.parse(Digester.java:1586)
> >>>> >          at
> >>>> > 
> >>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
> >>>>
> >>>> >          at
> >>>> > 
> >>>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
> >>>>
> >>>> >          at
> >>>> > 
> >>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
> >>>>
> >>>> >          at
> >>>> > 
> >>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
> >>>>
> >>>> >          at
> >>>> > 
> >>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
> >>>>
> >>>> >
> >>>> > I looked at the JDK's source and found the following code when 
> >>>> loading the
> >>>> > PreferenceFactory implementation :
> >>>> >
> >>>> >              factory = (PreferencesFactory)
> >>>> >                 Class.forName(factoryName, false,
> >>>> > ClassLoader.getSystemClassLoader()).newInstance();
> >>>> >
> >>>> > If this means what I think it does, the preference factory may 
> >>>> only be
> >>>> > loaded from the root class loader, which means that we would need 
> >>>> to deploy
> >>>> > the jetspeed-prefs*.jar into Tomcat's classpath or something.
> >>>> >
> >>>> > Is this analysis correct ? If so, how to we get around this ?
> >>>> >
> >>>> > Regards,
> >>>> >    Serge Huber.
> >>>> >
> >>>> >
> >>>> >
> >>>> > - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> >>>> > www.jahia.org : A collaborative source CMS and Portal Server
> >>>> >
> >>>> >
> >>>> >
> >>>> > ---------------------------------------------------------------------
> >>>> > To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> >>>> > For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> >>>>
> >>>> Regards,
> >>>> -- 
> >>>> ******************************************
> >>>> *           Scott T. Weaver              *
> >>>> *         <we...@apache.org>            *
> >>>> *     <http://www.einnovation.com>       *
> >>>> * -------------------------------------- *
> >>>> *   Apache Jetspeed Enterprise Portal    *
> >>>> *     Apache Pluto Portlet Container     *
> >>>> *                                        *
> >>>> * OpenEditPro, Website Content Mangement *
> >>>> *     <http://www.openeditpro.com>       *
> >>>> ******************************************
> >>>>
> >>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> >>>> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> >>>
> >>>
> >>> - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> >>> www.jahia.org : A collaborative source CMS and Portal Server
> >>>
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> >>> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> >>
> >>
> >> - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> >> www.jahia.org : A collaborative source CMS and Portal Server
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> >> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> > 
> > 
> > - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> > www.jahia.org : A collaborative source CMS and Portal Server
> > 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> > 
> > 
> > 
> > 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
-- 
******************************************
*           Scott T. Weaver              *
*         <we...@apache.org>            *
*     <http://www.einnovation.com>       *   
* -------------------------------------- *
*   Apache Jetspeed Enterprise Portal    *
*     Apache Pluto Portlet Container     *
*                                        *
* OpenEditPro, Website Content Mangement *
*     <http://www.openeditpro.com>       *
******************************************


---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org


Re: [J2] Using FileSystem PAM from web app class loader

Posted by Ate Douma <at...@douma.nu>.
Serge and Scott,

I can confirm to have similar problems. Not the same though.
If I do a allClean allBuild quickStart and then start Tomcat
it all works perfectly. I can access all the portlets without any problem.
It goes wrong though when I stop/start Tomcat again. Then I get the following
stacktrace (in jetspeed.log and on screen) when opening the J2 portal site again:

2004-06-21 19:20:28,515 [http8080-Processor3] DEBUG org.apache.jetspeed.container.JetspeedContainerServlet - Rendering: 
Portlet Class = org.apache.jetspeed.portlets.layout.MultiColumnPortlet
2004-06-21 19:20:28,515 [http8080-Processor3] ERROR org.apache.jetspeed.container.JetspeedContainerServlet - Error 
rendering portlet "VelocityTwoColumns": java.lang.NoClassDefFoundError
java.lang.NoClassDefFoundError
	at org.apache.jetspeed.components.portletentity.PortletEntityImpl.getPreferenceSet(PortletEntityImpl.java:128)
	at org.apache.pluto.core.impl.PortletPreferencesImpl.<init>(PortletPreferencesImpl.java:72)
	at org.apache.pluto.factory.impl.PortletPreferencesFactoryImpl.getPortletPreferences(PortletPreferencesFactoryImpl.java:39)
	at org.apache.pluto.factory.PortletObjectAccess.getPortletPreferences(PortletObjectAccess.java:116)
	at org.apache.pluto.core.impl.RenderRequestImpl.getPreferences(RenderRequestImpl.java:74)
	at org.apache.jetspeed.portlets.layout.LayoutPortlet.doView(LayoutPortlet.java:72)
	at org.apache.jetspeed.portlets.layout.MultiColumnPortlet.doView(MultiColumnPortlet.java:82)
	at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:247)
	at javax.portlet.GenericPortlet.render(GenericPortlet.java:175)
	at org.apache.jetspeed.container.JetspeedContainerServlet.doGet(JetspeedContainerServlet.java:214)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:575)
	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:498)
	at org.apache.jetspeed.container.invoker.ServletPortletInvoker.invoke(ServletPortletInvoker.java:208)
	at org.apache.jetspeed.container.invoker.ServletPortletInvoker.render(ServletPortletInvoker.java:122)
	at org.apache.pluto.PortletContainerImpl.renderPortlet(PortletContainerImpl.java:103)
	at org.apache.jetspeed.container.JetspeedPortletContainerWrapper.renderPortlet(JetspeedPortletContainerWrapper.java:97)
	at org.apache.jetspeed.aggregator.impl.PortletRendererImpl.renderNow(PortletRendererImpl.java:95)
	at org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.build(PageAggregatorImpl.java:231)
	at org.apache.jetspeed.aggregator.AggregatorValve.invoke(AggregatorValve.java:47)
	at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:255)
	at org.apache.jetspeed.pipeline.valve.impl.ActionValveImpl.invoke(ActionValveImpl.java:107)
	at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:255)
	at org.apache.jetspeed.container.ContainerValve.invoke(ContainerValve.java:76)
	at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:255)
	at org.apache.jetspeed.profiler.impl.ProfilerValveImpl.invoke(ProfilerValveImpl.java:57)
	at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:255)
	at org.apache.jetspeed.security.impl.SecurityValveImpl.invoke(SecurityValveImpl.java:89)
	at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:255)
	at org.apache.jetspeed.capabilities.impl.CapabilityValveImpl.invoke(CapabilityValveImpl.java:132)
	at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:255)
	at org.apache.jetspeed.localization.impl.LocalizationValveImpl.invoke(LocalizationValveImpl.java:62)
	at org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:255)
	at org.apache.jetspeed.pipeline.JetspeedPipeline.invoke(JetspeedPipeline.java:237)
	at org.apache.jetspeed.engine.JetspeedEngine.service(JetspeedEngine.java:276)
	at org.apache.jetspeed.engine.JetspeedServlet.doGet(JetspeedServlet.java:207)
	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:256)
	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.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:492)
	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.StandardContext.invoke(StandardContext.java:2422)
	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:171)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)
	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:199)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
	at java.lang.Thread.run(Thread.java:534)

My setup is almost the same as from Scott. But, maybe important, I use a more recent JDK:

Latest J2 CVS HEAD
Windows XP SP1
Sun J2SE 1.4.2_04
Tomcat 4.1.30
Oracle 9i


Serge Huber wrote:
> 
> I forgot to mention my environment :
> 
> - latest J2 from CVS HEAD, including Ate's properties change
> - Windows XP SP 1
> - Sun JDK 1.4.2_01
> - Tomcat 4.1.30
> 
> My guess about this problem is that as the JVM's Preferences impl uses 
> the system class loader (see my previous mail), we cannot access the 
> PreferencesFactoryImpl which is in a child class loader (the webapp's 
> class loader). Now I would love to be able to propose a workaround, but 
> since this seems to be a problem with the JDK's implementation and 
> doesn't offer an alternate way to set a class loader, I'm not sure there 
> are any options...
> 
> Anyway, it might also just be my setup. Can somebody reproduce this 
> problem ?
> 
> Regards,
>   Serge Huber.
> 
> At 18:44 21.06.2004, you wrote:
> 
>> Scott,
>>
>> I did a complete checkout of J2, then :
>>
>> allClean
>> allBuild
>> quickStart
>>
>> and then started Tomcat, here is the log of what happened :
>>
>>  INFO: Preparing to deploy portlet app "HW_App"
>>  INFO: Deploying portlet applicaion WAR demo.war
>>  INFO: Portlet application deployment target directory is 
>> C:\java\technologies\jakarta-tomcat\webapps/HW_App
>> java.lang.InternalError: Can't instantiate Preferences factory 
>> java.lang.ClassNotFoundException: 
>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>         at 
>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
>>
>>         at 
>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
>>
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
>>
>>         at 
>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>         at 
>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>>         at 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>> Source)
>>         at 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>> Source)
>>         at 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
>>   Source)
>>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>> Source)
>>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>> Source)
>>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
>> Source)
>>         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
>>
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
>>
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
>>
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
>>
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
>>
>>         at 
>> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76) 
>>
>>         at 
>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114) 
>>
>>         at 
>> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64) 
>>
>>         at 
>> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125) 
>>
>>         at 
>> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88) 
>>
>> ERROR: Unable to register portlet application, HW_App, through the 
>> portlet registry: 
>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
>> not
>> unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
>> Preferences factory java.lang.ClassNotFoundException: 
>> org.apache.jetspeed.prefs.impl.Preferenc
>> esFactoryImpl
>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
>> not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
>> Preferences factory
>>  java.lang.ClassNotFoundException: 
>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172) 
>>
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
>>
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
>>
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
>>
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
>>
>>         at 
>> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76) 
>>
>>         at 
>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114) 
>>
>>         at 
>> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64) 
>>
>>         at 
>> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125) 
>>
>>         at 
>> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88) 
>>
>> Caused by: java.lang.InternalError: Can't instantiate Preferences 
>> factory java.lang.ClassNotFoundException: 
>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
>> l
>>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>         at 
>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
>>
>>         at 
>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
>>
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
>>
>>         at 
>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>         at 
>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>>         at 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>> Source)
>>         at 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>> Source)
>>         at 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
>>   Source)
>>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>> Source)
>>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>> Source)
>>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
>> Source)
>>         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
>>
>>         ... 9 more
>> ERROR: Unexpected exception deploying portlet application: 
>> org.apache.jetspeed.components.portletregistry.RegistryException: 
>> Unable to register portlet applicat
>> ion, HW_App, through the portlet registry: 
>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
>> not unmarshal portlet.xml. java.lang.InternalE
>> rror: Can't instantiate Preferences factory 
>> java.lang.ClassNotFoundException: 
>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl attempting 
>> rollback...
>> org.apache.jetspeed.components.portletregistry.RegistryException: 
>> Unable to register portlet application, HW_App, through the portlet 
>> registry: org.apache.jetsp
>> eed.tools.pamanager.PortletApplicationException: Could not unmarshal 
>> portlet.xml. java.lang.InternalError: Can't instantiate Preferences 
>> factory java.lang.Class
>> NotFoundException: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383) 
>>
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
>>
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
>>
>>         at 
>> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76) 
>>
>>         at 
>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114) 
>>
>>         at 
>> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64) 
>>
>>         at 
>> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125) 
>>
>>         at 
>> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88) 
>>
>> Caused by: 
>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
>> not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
>> Preferen
>> ces factory java.lang.ClassNotFoundException: 
>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172) 
>>
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
>>
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
>>
>>         ... 7 more
>> Caused by: java.lang.InternalError: Can't instantiate Preferences 
>> factory java.lang.ClassNotFoundException: 
>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
>> l
>>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>         at 
>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
>>
>>         at 
>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
>>
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
>>
>>         at 
>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>         at 
>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>>         at 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>> Source)
>>         at 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>> Source)
>>         at 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
>>   Source)
>>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>> Source)
>>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>> Source)
>>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
>> Source)
>>         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
>>
>>         ... 9 more
>>  INFO: Exception in deploy. Rollback of application deployment...
>>  INFO: Rollback: Remove 
>> C:\java\technologies\jakarta-tomcat\webapps/HW_App and all 
>> sub-directories.
>> ERROR: org.apache.jetspeed.deployment.DeploymentException: Error 
>> deploying portlet app: 
>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: org.apa
>> che.jetspeed.components.portletregistry.RegistryException: Unable to 
>> register portlet application, HW_App, through the portlet registry: 
>> org.apache.jetspeed.too
>> ls.pamanager.PortletApplicationException: Could not unmarshal 
>> portlet.xml. java.lang.InternalError: Can't instantiate Preferences 
>> factory java.lang.ClassNotFoun
>> dException: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>> org.apache.jetspeed.deployment.DeploymentException: Error deploying 
>> portlet app: 
>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>> org.apache.jet
>> speed.components.portletregistry.RegistryException: Unable to register 
>> portlet application, HW_App, through the portlet registry: 
>> org.apache.jetspeed.tools.pama
>> nager.PortletApplicationException: Could not unmarshal portlet.xml. 
>> java.lang.InternalError: Can't instantiate Preferences factory 
>> java.lang.ClassNotFoundExcept
>> ion: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>         at 
>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:128) 
>>
>>         at 
>> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64) 
>>
>>         at 
>> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125) 
>>
>>         at 
>> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88) 
>>
>> Caused by: 
>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>> org.apache.jetspeed.components.portletregistry.RegistryException: 
>> Unable to register
>>  portlet application, HW_App, through the portlet registry: 
>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
>> not unmarshal portlet.xml. ja
>> va.lang.InternalError: Can't instantiate Preferences factory 
>> java.lang.ClassNotFoundException: 
>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:319) 
>>
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
>>
>>         at 
>> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76) 
>>
>>         at 
>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114) 
>>
>>         ... 3 more
>> Caused by: 
>> org.apache.jetspeed.components.portletregistry.RegistryException: 
>> Unable to register portlet application, HW_App, through the portlet 
>> registry: org.a
>> pache.jetspeed.tools.pamanager.PortletApplicationException: Could not 
>> unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
>> Preferences factory java
>> .lang.ClassNotFoundException: 
>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383) 
>>
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
>>
>>         ... 6 more
>> Caused by: 
>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
>> not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
>> Preferen
>> ces factory java.lang.ClassNotFoundException: 
>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172) 
>>
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
>>
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
>>
>>         ... 7 more
>> Caused by: java.lang.InternalError: Can't instantiate Preferences 
>> factory java.lang.ClassNotFoundException: 
>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
>> l
>>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>         at 
>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
>>
>>         at 
>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
>>
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
>>
>>         at 
>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>         at 
>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>>         at 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>> Source)
>>         at 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>> Source)
>>         at 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
>>   Source)
>>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>> Source)
>>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>> Source)
>>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
>> Source)
>>         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
>>
>>         ... 9 more
>>  INFO: Loading portlet application from web archive 
>> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\jetspeed-layouts.war 
>>
>>  INFO: Preparing to deploy portlet app "jetspeed"
>>  INFO: jetspeed-layouts.war will be registered as a local portlet 
>> applicaiton.
>>  INFO: Portlet application deployment target directory is 
>> jetspeed/jetspeed
>>  INFO: Did not load exteneded metadata as it most likely does not 
>> exist.  org.apache.commons.vfs.FileSystemException: Could not read 
>> from "jar:file://C:/java/te
>> chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/jetspeed-portlet.xml" 
>> because it is a not a file.
>>  INFO: Loading web.xml into memory....
>>  INFO: Saving the portlet.xml in the registry...
>>  INFO: Committing registry changes...
>>  INFO: FileSystem deployment done.
>>  INFO: Adding 
>> jar:file://C:/java/technologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/classes 
>> to class path.
>>  INFO: Portlet app "jetspeed" successfuly deployed.
>>  INFO: Loading portlet application from web archive 
>> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\pam.war 
>>
>>  INFO: Preparing to deploy portlet app "pam"
>>  INFO: Deploying portlet applicaion WAR pam.war
>>  INFO: Portlet application deployment target directory is 
>> C:\java\technologies\jakarta-tomcat\webapps/pam
>> Writing out infused web.xml for pam
>>  INFO: Loading web.xml into memory....
>>  INFO: Saving the portlet.xml in the registry...
>>  INFO: Committing registry changes...
>>  INFO: FileSystem deployment done.
>>  INFO: Catalina deployment response: OK - Application installTe pour 
>> le chemin de contexte /pam
>>
>>  INFO: Portlet app "pam" successfuly deployed.
>>  INFO: Loading portlet application from web archive 
>> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\security.war 
>>
>>  INFO: Preparing to deploy portlet app "security"
>>  INFO: Deploying portlet applicaion WAR security.war
>>  INFO: Portlet application deployment target directory is 
>> C:\java\technologies\jakarta-tomcat\webapps/security
>> Writing out infused web.xml for security
>>  INFO: Loading web.xml into memory....
>>  INFO: Saving the portlet.xml in the registry...
>>  INFO: Committing registry changes...
>>  INFO: FileSystem deployment done.
>>  INFO: Catalina deployment response: OK - Application installTe pour 
>> le chemin de contexte /security
>>
>>  INFO: Portlet app "security" successfuly deployed.
>>  INFO: Loading portlet application from web archive 
>> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\struts-demo.war 
>>
>>  INFO: Preparing to deploy portlet app "struts-demo"
>>  INFO: Deploying portlet applicaion WAR struts-demo.war
>>  INFO: Portlet application deployment target directory is 
>> C:\java\technologies\jakarta-tomcat\webapps/struts-demo
>> Writing out infused web.xml for struts-demo
>>  INFO: Did not load exteneded metadata as it most likely does not 
>> exist.  org.apache.commons.vfs.FileSystemException: Could not read 
>> from "jar:file://C:/java/te
>> chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/struts-demo.war!/WEB-INF/jetspeed-portlet.xml" 
>> because it is a not a file.
>>  INFO: Loading web.xml into memory....
>>  INFO: Saving the portlet.xml in the registry...
>>  INFO: Committing registry changes...
>>  INFO: FileSystem deployment done.
>>  INFO: Catalina deployment response: OK - Application installTe pour 
>> le chemin de contexte /struts-demo
>>
>>  INFO: Portlet app "struts-demo" successfuly deployed.
>>
>> So it seems that even within the J2 webapp there is a problem with the 
>> class loading of the preference factory. What is strange is that some 
>> PAs deployed, but I guess they don't use any preferences ?
>>
>> Regards,
>>   Serge Huber.
>>
>> At 16:43 21.06.2004, you wrote:
>>
>>> Hi Scott,
>>>
>>> Actually I'm calling the FileSystemPAM from my own deployer, within 
>>> Jahia. Maybe I'm missing something in my deployment ? I have the 
>>> jetspeed-prefs*.jar in the WEB-INF/lib directory, along with all of 
>>> J2, and I updated the assembly script a few hours ago.
>>>
>>> I didn't test with auto-deploy, but I could to see if it works better.
>>>
>>> Regards,
>>>   Serge...
>>>
>>> At 16:31 21.06.2004, you wrote:
>>>
>>>> Hi Serge,
>>>>
>>>>
>>>> Is this exception coming from auto-deployment?  Because I am not having
>>>> any issues with deployment.  I made PreferenceProviderImpl Startable so
>>>> this wouldn't happen, maybe this doesn't address all possible scenarios
>>>> though.
>>>>
>>>>
>>>> On Mon, 2004-06-21 at 10:23, Serge Huber wrote:
>>>> > Hi,
>>>> >
>>>> > I'm having some problem using the FileSystemPAM from within a web app
>>>> > context (seems to work in the tests, which use the system class 
>>>> loader).
>>>> >
>>>> > Basically I get the following exception :
>>>> >
>>>> > java.lang.InternalError: Can't instantiate Preferences factory
>>>> > java.lang.ClassNotFoundException:
>>>> > org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>> >
>>>> >          at 
>>>> java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>>> >          at
>>>> > 
>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
>>>>
>>>> >          at
>>>> > 
>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
>>>>
>>>> >          at
>>>> > 
>>>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
>>>>
>>>> >          at 
>>>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>>> >          at 
>>>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
>>>> > Source)
>>>> >          at
>>>> > 
>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>>>>
>>>> > Source)
>>>> >          at
>>>> > 
>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>>>>
>>>> > Source)
>>>> >          at
>>>> > 
>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
>>>>
>>>> > Source)
>>>> >          at 
>>>> org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>>>> >          at 
>>>> org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>>> >          at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>>> >          at 
>>>> org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>>>> >          at 
>>>> org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>>> >          at
>>>> > 
>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
>>>>
>>>> >          at
>>>> > 
>>>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
>>>>
>>>> >          at
>>>> > 
>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
>>>>
>>>> >          at
>>>> > 
>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
>>>>
>>>> >          at
>>>> > 
>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
>>>>
>>>> >
>>>> > I looked at the JDK's source and found the following code when 
>>>> loading the
>>>> > PreferenceFactory implementation :
>>>> >
>>>> >              factory = (PreferencesFactory)
>>>> >                 Class.forName(factoryName, false,
>>>> > ClassLoader.getSystemClassLoader()).newInstance();
>>>> >
>>>> > If this means what I think it does, the preference factory may 
>>>> only be
>>>> > loaded from the root class loader, which means that we would need 
>>>> to deploy
>>>> > the jetspeed-prefs*.jar into Tomcat's classpath or something.
>>>> >
>>>> > Is this analysis correct ? If so, how to we get around this ?
>>>> >
>>>> > Regards,
>>>> >    Serge Huber.
>>>> >
>>>> >
>>>> >
>>>> > - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>>> > www.jahia.org : A collaborative source CMS and Portal Server
>>>> >
>>>> >
>>>> >
>>>> > ---------------------------------------------------------------------
>>>> > To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>> > For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>>>
>>>> Regards,
>>>> -- 
>>>> ******************************************
>>>> *           Scott T. Weaver              *
>>>> *         <we...@apache.org>            *
>>>> *     <http://www.einnovation.com>       *
>>>> * -------------------------------------- *
>>>> *   Apache Jetspeed Enterprise Portal    *
>>>> *     Apache Pluto Portlet Container     *
>>>> *                                        *
>>>> * OpenEditPro, Website Content Mangement *
>>>> *     <http://www.openeditpro.com>       *
>>>> ******************************************
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>>
>>>
>>> - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>> www.jahia.org : A collaborative source CMS and Portal Server
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>
>>
>> - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>> www.jahia.org : A collaborative source CMS and Portal Server
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> 
> 
> - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> www.jahia.org : A collaborative source CMS and Portal Server
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> 
> 
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org


Re: [J2] Using FileSystem PAM from web app class loader

Posted by Scott T Weaver <sc...@binary-designs.net>.
LOL!!!!

Well, I just committed the fix ;)  I had broke something in my
refactoring.  I had changed the way the system and user roots were being
created, from the way David (Le Strat) had originally coded it.  Now I
see why he did it the way he did :)

On Mon, 2004-06-21 at 13:46, Serge Huber wrote:
> Found my problem !!
> 
> It's amazing, but it actually explains why the problem was not happening to 
> everybody. It's a problem that only exists with JDK 1.4.2_01 and earlier. 
> It seems that in JDK 1.4.2_02 the implementation of classloading for the 
> factory has changed. Before _02 they used the System class loader, whereas 
> in _02 and later if the class is not found in the system class loader, it 
> then tries in the Thread class loader.
> 
> For more details go to :
> 
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4788410
> 
> To confirm I upgraded to JDK 1.4.2_04 and I now have the preference factory 
> loading fine.
> 
> Now this begs the question : do we want J2 to require JDK 1.4.2_02 or later 
> or do we need to change the pref api implementation to be more portable ?
> 
> Regards,
>    Serge Huber.
> 
> At 18:59 21.06.2004, you wrote:
> 
> >I forgot to mention my environment :
> >
> >- latest J2 from CVS HEAD, including Ate's properties change
> >- Windows XP SP 1
> >- Sun JDK 1.4.2_01
> >- Tomcat 4.1.30
> >
> >My guess about this problem is that as the JVM's Preferences impl uses the 
> >system class loader (see my previous mail), we cannot access the 
> >PreferencesFactoryImpl which is in a child class loader (the webapp's 
> >class loader). Now I would love to be able to propose a workaround, but 
> >since this seems to be a problem with the JDK's implementation and doesn't 
> >offer an alternate way to set a class loader, I'm not sure there are any 
> >options...
> >
> >Anyway, it might also just be my setup. Can somebody reproduce this problem ?
> >
> >Regards,
> >   Serge Huber.
> >
> >At 18:44 21.06.2004, you wrote:
> >
> >>Scott,
> >>
> >>I did a complete checkout of J2, then :
> >>
> >>allClean
> >>allBuild
> >>quickStart
> >>
> >>and then started Tomcat, here is the log of what happened :
> >>
> >>  INFO: Preparing to deploy portlet app "HW_App"
> >>  INFO: Deploying portlet applicaion WAR demo.war
> >>  INFO: Portlet application deployment target directory is 
> >> C:\java\technologies\jakarta-tomcat\webapps/HW_App
> >>java.lang.InternalError: Can't instantiate Preferences factory 
> >>java.lang.ClassNotFoundException: 
> >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> >>         at 
> >> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
> >>         at 
> >> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
> >>         at 
> >> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> >>         at 
> >> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> >> Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> >> Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> >> Source)
> >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> >>         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
> >>         at 
> >> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
> >>         at 
> >> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
> >>         at 
> >> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
> >>         at 
> >> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
> >>ERROR: Unable to register portlet application, HW_App, through the 
> >>portlet registry: 
> >>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could not
> >>unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
> >>Preferences factory java.lang.ClassNotFoundException: 
> >>org.apache.jetspeed.prefs.impl.Preferenc
> >>esFactoryImpl
> >>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
> >>not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
> >>Preferences factory
> >>  java.lang.ClassNotFoundException: 
> >> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
> >>         at 
> >> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
> >>         at 
> >> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
> >>         at 
> >> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
> >>         at 
> >> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
> >>Caused by: java.lang.InternalError: Can't instantiate Preferences factory 
> >>java.lang.ClassNotFoundException: 
> >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
> >>l
> >>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> >>         at 
> >> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
> >>         at 
> >> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
> >>         at 
> >> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> >>         at 
> >> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> >> Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> >> Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> >> Source)
> >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> >>         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
> >>         ... 9 more
> >>ERROR: Unexpected exception deploying portlet application: 
> >>org.apache.jetspeed.components.portletregistry.RegistryException: Unable 
> >>to register portlet applicat
> >>ion, HW_App, through the portlet registry: 
> >>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
> >>not unmarshal portlet.xml. java.lang.InternalE
> >>rror: Can't instantiate Preferences factory 
> >>java.lang.ClassNotFoundException: 
> >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl attempting rollback...
> >>org.apache.jetspeed.components.portletregistry.RegistryException: Unable 
> >>to register portlet application, HW_App, through the portlet registry: 
> >>org.apache.jetsp
> >>eed.tools.pamanager.PortletApplicationException: Could not unmarshal 
> >>portlet.xml. java.lang.InternalError: Can't instantiate Preferences 
> >>factory java.lang.Class
> >>NotFoundException: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
> >>         at 
> >> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
> >>         at 
> >> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
> >>         at 
> >> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
> >>         at 
> >> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
> >>Caused by: 
> >>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
> >>not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate Preferen
> >>ces factory java.lang.ClassNotFoundException: 
> >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
> >>         ... 7 more
> >>Caused by: java.lang.InternalError: Can't instantiate Preferences factory 
> >>java.lang.ClassNotFoundException: 
> >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
> >>l
> >>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> >>         at 
> >> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
> >>         at 
> >> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
> >>         at 
> >> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> >>         at 
> >> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> >> Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> >> Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> >> Source)
> >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> >>         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
> >>         ... 9 more
> >>  INFO: Exception in deploy. Rollback of application deployment...
> >>  INFO: Rollback: Remove 
> >> C:\java\technologies\jakarta-tomcat\webapps/HW_App and all sub-directories.
> >>ERROR: org.apache.jetspeed.deployment.DeploymentException: Error 
> >>deploying portlet app: 
> >>org.apache.jetspeed.tools.pamanager.PortletApplicationException: org.apa
> >>che.jetspeed.components.portletregistry.RegistryException: Unable to 
> >>register portlet application, HW_App, through the portlet registry: 
> >>org.apache.jetspeed.too
> >>ls.pamanager.PortletApplicationException: Could not unmarshal 
> >>portlet.xml. java.lang.InternalError: Can't instantiate Preferences 
> >>factory java.lang.ClassNotFoun
> >>dException: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>org.apache.jetspeed.deployment.DeploymentException: Error deploying 
> >>portlet app: 
> >>org.apache.jetspeed.tools.pamanager.PortletApplicationException: org.apache.jet
> >>speed.components.portletregistry.RegistryException: Unable to register 
> >>portlet application, HW_App, through the portlet registry: 
> >>org.apache.jetspeed.tools.pama
> >>nager.PortletApplicationException: Could not unmarshal portlet.xml. 
> >>java.lang.InternalError: Can't instantiate Preferences factory 
> >>java.lang.ClassNotFoundExcept
> >>ion: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>         at 
> >> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:128)
> >>         at 
> >> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
> >>         at 
> >> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
> >>         at 
> >> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
> >>Caused by: 
> >>org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
> >>org.apache.jetspeed.components.portletregistry.RegistryException: Unable 
> >>to register
> >>  portlet application, HW_App, through the portlet registry: 
> >> org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
> >> not unmarshal portlet.xml. ja
> >>va.lang.InternalError: Can't instantiate Preferences factory 
> >>java.lang.ClassNotFoundException: 
> >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:319)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
> >>         at 
> >> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
> >>         ... 3 more
> >>Caused by: 
> >>org.apache.jetspeed.components.portletregistry.RegistryException: Unable 
> >>to register portlet application, HW_App, through the portlet registry: org.a
> >>pache.jetspeed.tools.pamanager.PortletApplicationException: Could not 
> >>unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
> >>Preferences factory java
> >>.lang.ClassNotFoundException: 
> >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
> >>         ... 6 more
> >>Caused by: 
> >>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
> >>not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate Preferen
> >>ces factory java.lang.ClassNotFoundException: 
> >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
> >>         ... 7 more
> >>Caused by: java.lang.InternalError: Can't instantiate Preferences factory 
> >>java.lang.ClassNotFoundException: 
> >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
> >>l
> >>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> >>         at 
> >> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
> >>         at 
> >> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
> >>         at 
> >> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> >>         at 
> >> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> >> Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> >> Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> >> Source)
> >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> >>         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
> >>         ... 9 more
> >>  INFO: Loading portlet application from web archive 
> >> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\jetspeed-layouts.war
> >>  INFO: Preparing to deploy portlet app "jetspeed"
> >>  INFO: jetspeed-layouts.war will be registered as a local portlet 
> >> applicaiton.
> >>  INFO: Portlet application deployment target directory is jetspeed/jetspeed
> >>  INFO: Did not load exteneded metadata as it most likely does not 
> >> exist.  org.apache.commons.vfs.FileSystemException: Could not read from 
> >> "jar:file://C:/java/te
> >>chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/jetspeed-portlet.xml" 
> >>because it is a not a file.
> >>  INFO: Loading web.xml into memory....
> >>  INFO: Saving the portlet.xml in the registry...
> >>  INFO: Committing registry changes...
> >>  INFO: FileSystem deployment done.
> >>  INFO: Adding 
> >> jar:file://C:/java/technologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/classes
> >> to class path.
> >>  INFO: Portlet app "jetspeed" successfuly deployed.
> >>  INFO: Loading portlet application from web archive 
> >> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\pam.war
> >>  INFO: Preparing to deploy portlet app "pam"
> >>  INFO: Deploying portlet applicaion WAR pam.war
> >>  INFO: Portlet application deployment target directory is 
> >> C:\java\technologies\jakarta-tomcat\webapps/pam
> >>Writing out infused web.xml for pam
> >>  INFO: Loading web.xml into memory....
> >>  INFO: Saving the portlet.xml in the registry...
> >>  INFO: Committing registry changes...
> >>  INFO: FileSystem deployment done.
> >>  INFO: Catalina deployment response: OK - Application installTe pour le 
> >> chemin de contexte /pam
> >>
> >>  INFO: Portlet app "pam" successfuly deployed.
> >>  INFO: Loading portlet application from web archive 
> >> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\security.war
> >>  INFO: Preparing to deploy portlet app "security"
> >>  INFO: Deploying portlet applicaion WAR security.war
> >>  INFO: Portlet application deployment target directory is 
> >> C:\java\technologies\jakarta-tomcat\webapps/security
> >>Writing out infused web.xml for security
> >>  INFO: Loading web.xml into memory....
> >>  INFO: Saving the portlet.xml in the registry...
> >>  INFO: Committing registry changes...
> >>  INFO: FileSystem deployment done.
> >>  INFO: Catalina deployment response: OK - Application installTe pour le 
> >> chemin de contexte /security
> >>
> >>  INFO: Portlet app "security" successfuly deployed.
> >>  INFO: Loading portlet application from web archive 
> >> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\struts-demo.war
> >>  INFO: Preparing to deploy portlet app "struts-demo"
> >>  INFO: Deploying portlet applicaion WAR struts-demo.war
> >>  INFO: Portlet application deployment target directory is 
> >> C:\java\technologies\jakarta-tomcat\webapps/struts-demo
> >>Writing out infused web.xml for struts-demo
> >>  INFO: Did not load exteneded metadata as it most likely does not 
> >> exist.  org.apache.commons.vfs.FileSystemException: Could not read from 
> >> "jar:file://C:/java/te
> >>chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/struts-demo.war!/WEB-INF/jetspeed-portlet.xml" 
> >>because it is a not a file.
> >>  INFO: Loading web.xml into memory....
> >>  INFO: Saving the portlet.xml in the registry...
> >>  INFO: Committing registry changes...
> >>  INFO: FileSystem deployment done.
> >>  INFO: Catalina deployment response: OK - Application installTe pour le 
> >> chemin de contexte /struts-demo
> >>
> >>  INFO: Portlet app "struts-demo" successfuly deployed.
> >>
> >>So it seems that even within the J2 webapp there is a problem with the 
> >>class loading of the preference factory. What is strange is that some PAs 
> >>deployed, but I guess they don't use any preferences ?
> >>
> >>Regards,
> >>   Serge Huber.
> >>
> >>At 16:43 21.06.2004, you wrote:
> >>
> >>>Hi Scott,
> >>>
> >>>Actually I'm calling the FileSystemPAM from my own deployer, within 
> >>>Jahia. Maybe I'm missing something in my deployment ? I have the 
> >>>jetspeed-prefs*.jar in the WEB-INF/lib directory, along with all of J2, 
> >>>and I updated the assembly script a few hours ago.
> >>>
> >>>I didn't test with auto-deploy, but I could to see if it works better.
> >>>
> >>>Regards,
> >>>   Serge...
> >>>
> >>>At 16:31 21.06.2004, you wrote:
> >>>>Hi Serge,
> >>>>
> >>>>
> >>>>Is this exception coming from auto-deployment?  Because I am not having
> >>>>any issues with deployment.  I made PreferenceProviderImpl Startable so
> >>>>this wouldn't happen, maybe this doesn't address all possible scenarios
> >>>>though.
> >>>>
> >>>>
> >>>>On Mon, 2004-06-21 at 10:23, Serge Huber wrote:
> >>>> > Hi,
> >>>> >
> >>>> > I'm having some problem using the FileSystemPAM from within a web app
> >>>> > context (seems to work in the tests, which use the system class loader).
> >>>> >
> >>>> > Basically I get the following exception :
> >>>> >
> >>>> > java.lang.InternalError: Can't instantiate Preferences factory
> >>>> > java.lang.ClassNotFoundException:
> >>>> > org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>>> >
> >>>> >          at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> >>>> >          at
> >>>> > 
> >>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
> >>>> >          at
> >>>> > 
> >>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
> >>>> >          at
> >>>> > 
> >>>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
> >>>> >          at 
> >>>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> >>>> >          at 
> >>>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
> >>>> > Source)
> >>>> >          at
> >>>> > 
> >>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown
> >>>> > Source)
> >>>> >          at
> >>>> > 
> >>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> >>>>
> >>>> > Source)
> >>>> >          at
> >>>> > 
> >>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> >>>> > Source)
> >>>> >          at 
> >>>> org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> >>>> >          at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
> >>>> Source)
> >>>> >          at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >>>> >          at 
> >>>> org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> >>>> >          at 
> >>>> org.apache.commons.digester.Digester.parse(Digester.java:1586)
> >>>> >          at
> >>>> > 
> >>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
> >>>> >          at
> >>>> > 
> >>>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
> >>>> >          at
> >>>> > 
> >>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
> >>>> >          at
> >>>> > 
> >>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
> >>>> >          at
> >>>> > 
> >>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
> >>>> >
> >>>> > I looked at the JDK's source and found the following code when 
> >>>> loading the
> >>>> > PreferenceFactory implementation :
> >>>> >
> >>>> >              factory = (PreferencesFactory)
> >>>> >                 Class.forName(factoryName, false,
> >>>> > ClassLoader.getSystemClassLoader()).newInstance();
> >>>> >
> >>>> > If this means what I think it does, the preference factory may only be
> >>>> > loaded from the root class loader, which means that we would need to 
> >>>> deploy
> >>>> > the jetspeed-prefs*.jar into Tomcat's classpath or something.
> >>>> >
> >>>> > Is this analysis correct ? If so, how to we get around this ?
> >>>> >
> >>>> > Regards,
> >>>> >    Serge Huber.
> >>>> >
> >>>> >
> >>>> >
> >>>> > - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> >>>> > www.jahia.org : A collaborative source CMS and Portal Server
> >>>> >
> >>>> >
> >>>> >
> >>>> > ---------------------------------------------------------------------
> >>>> > To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> >>>> > For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> >>>>
> >>>>Regards,
> >>>>--
> >>>>******************************************
> >>>>*           Scott T. Weaver              *
> >>>>*         <we...@apache.org>            *
> >>>>*     <http://www.einnovation.com>       *
> >>>>* -------------------------------------- *
> >>>>*   Apache Jetspeed Enterprise Portal    *
> >>>>*     Apache Pluto Portlet Container     *
> >>>>*                                        *
> >>>>* OpenEditPro, Website Content Mangement *
> >>>>*     <http://www.openeditpro.com>       *
> >>>>******************************************
> >>>>
> >>>>
> >>>>---------------------------------------------------------------------
> >>>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> >>>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> >>>
> >>>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> >>>www.jahia.org : A collaborative source CMS and Portal Server
> >>>
> >>>
> >>>---------------------------------------------------------------------
> >>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> >>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> >>
> >>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> >>www.jahia.org : A collaborative source CMS and Portal Server
> >>
> >>
> >>---------------------------------------------------------------------
> >>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> >>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> >
> >- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> >www.jahia.org : A collaborative source CMS and Portal Server
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> >For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> 
> - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> www.jahia.org : A collaborative source CMS and Portal Server 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
-- 
******************************************
*           Scott T. Weaver              *
*         <we...@apache.org>            *
*     <http://www.einnovation.com>       *   
* -------------------------------------- *
*   Apache Jetspeed Enterprise Portal    *
*     Apache Pluto Portlet Container     *
*                                        *
* OpenEditPro, Website Content Mangement *
*     <http://www.openeditpro.com>       *
******************************************


---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org


Re: [J2] Using FileSystem PAM from web app class loader

Posted by Scott T Weaver <sc...@binary-designs.net>.
TestEngine was not using the internal JNDI server.  I added a sys props
flag to do so.  This should fix the issue.

On Mon, 2004-06-21 at 14:06, Ate Douma wrote:
> Scott T Weaver wrote:
> 
> > On Mon, 2004-06-21 at 13:46, Serge Huber wrote:
> > 
> >>Found my problem !!
> >>
> >>It's amazing, but it actually explains why the problem was not happening to 
> >>everybody. It's a problem that only exists with JDK 1.4.2_01 and earlier. 
> >>It seems that in JDK 1.4.2_02 the implementation of classloading for the 
> >>factory has changed. Before _02 they used the System class loader, whereas 
> >>in _02 and later if the class is not found in the system class loader, it 
> >>then tries in the Thread class loader.
> > 
> > 
> > I am using 1.4.2_04-b05 on Mandrake Linux and have the same problem you
> > and Ate were having.  Hmm, maybe they forgot to fix the Linux dist!
> > 
> > 
> >>For more details go to :
> >>
> >>http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4788410
> >>
> >>To confirm I upgraded to JDK 1.4.2_04 and I now have the preference factory 
> >>loading fine.
> >>
> >>Now this begs the question : do we want J2 to require JDK 1.4.2_02 or later 
> >>or do we need to change the pref api implementation to be more portable ?
> As I reported I had the problem with JDK 1.4.2_04 so it seems
> it is *not* fixed from 1.4.2_4.
> 
> I did a quick update to get Scotts fix and tried to build again.
> Now I get a test failure in o.a.j.engine.TestEngine.
> I'm sorry but I have a meeting now so I can't help out for the next few hours...
> 
> TEST-org.apache.jetspeed.engine.TestEngine.txt:
> 
> Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 2.484 sec
> 
> ------------- Standard Output ---------------
>   INFO: Jetspeed environment attempting to initialize portal Engine...
> JNDI System Property flag null
> cn=org.nanocontainer.script.groovy.GroovyContainerBuilder
> [org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl] ERROR: Naming Exception while looking up DataSource 
> (java:comp/env/jdbc/jetspeed)
> comp is not a subcontext
> [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR: PersistenceBrokerException during the execution of the query: 
> Used ConnectionManager instance could not obtain a connection
> Used ConnectionManager instance could not obtain a connection
> ------------- ---------------- ---------------
> ------------- Standard Error -----------------
> javax.naming.NotContextException: comp is not a subcontext
> 	at tyrex.naming.EnvContext.internalLookup(Unknown Source)
> 	at tyrex.naming.EnvContext.lookup(Unknown Source)
> 	at tyrex.naming.java.JavaContext.lookup(Unknown Source)
> 	at javax.naming.InitialContext.lookup(InitialContext.java:347)
> 	at org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.newConnectionFromDataSource(Unknown Source)
> 	at org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.lookupConnection(Unknown Source)
> 	at org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.getConnection(Unknown Source)
> 	at org.apache.ojb.broker.accesslayer.StatementManager.getPreparedStatement(Unknown Source)
> 	at org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(Unknown Source)
> 	at org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(Unknown Source)
> 	at org.apache.ojb.broker.accesslayer.RsIterator.<init>(Unknown Source)
> 	at org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(Unknown Source)
> 	at org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(Unknown Source)
> 	at org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(Unknown Source)
> 	at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Unknown Source)
> 	at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source)
> 	at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source)
> 	at org.apache.jetspeed.components.persistence.store.ojb.pb.PBStore.getObjectByQuery(PBStore.java:224)
> 	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)
> 	at 
> org.picocontainer.defaults.ImplementationHidingComponentAdapter$DelegatingInvocationHandler.invoke(ImplementationHidingComponentAdapter.java:92)
> 	at $Proxy0.getObjectByQuery(Unknown Source)
> 	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)
> 	at org.apache.jetspeed.components.adapters.AbstractDelegationStrategy.invoke(AbstractDelegationStrategy.java:66)
> 	at $Proxy0.getObjectByQuery(Unknown Source)
> 	at org.apache.jetspeed.prefs.impl.PreferencesImpl.getNode(PreferencesImpl.java:228)
> 	at org.apache.jetspeed.prefs.impl.PreferencesImpl.createPrefNode(PreferencesImpl.java:164)
> 	at org.apache.jetspeed.prefs.impl.PreferencesImpl.<init>(PreferencesImpl.java:113)
> 	at org.apache.jetspeed.prefs.impl.PreferencesImpl.<clinit>(PreferencesImpl.java:90)
> 	at org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl.systemRoot(PreferencesFactoryImpl.java:37)
> 	at org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:108)
> 	at org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292)
> 	at org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28)
> 	at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
> 	at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
> 	at org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76)
> 	at org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337)
> 	at org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
> 	at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
> 	at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
> 	at junit.framework.TestCase.runBare(TestCase.java:125)
> 	at junit.framework.TestResult$1.protect(TestResult.java:106)
> 	at junit.framework.TestResult.runProtected(TestResult.java:124)
> 	at junit.framework.TestResult.run(TestResult.java:109)
> 	at junit.framework.TestCase.run(TestCase.java:118)
> 	at junit.framework.TestSuite.runTest(TestSuite.java:208)
> 	at junit.framework.TestSuite.run(TestSuite.java:203)
> 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:325)
> 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:536)
> org.apache.ojb.broker.PersistenceBrokerException: Used ConnectionManager instance could not obtain a connection
> 	at org.apache.ojb.broker.accesslayer.StatementManager.getPreparedStatement(Unknown Source)
> 	at org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(Unknown Source)
> 	at org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(Unknown Source)
> 	at org.apache.ojb.broker.accesslayer.RsIterator.<init>(Unknown Source)
> 	at org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(Unknown Source)
> 	at org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(Unknown Source)
> 	at org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(Unknown Source)
> 	at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Unknown Source)
> 	at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source)
> 	at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source)
> 	at org.apache.jetspeed.components.persistence.store.ojb.pb.PBStore.getObjectByQuery(PBStore.java:224)
> 	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)
> 	at 
> org.picocontainer.defaults.ImplementationHidingComponentAdapter$DelegatingInvocationHandler.invoke(ImplementationHidingComponentAdapter.java:92)
> 	at $Proxy0.getObjectByQuery(Unknown Source)
> 	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)
> 	at org.apache.jetspeed.components.adapters.AbstractDelegationStrategy.invoke(AbstractDelegationStrategy.java:66)
> 	at $Proxy0.getObjectByQuery(Unknown Source)
> 	at org.apache.jetspeed.prefs.impl.PreferencesImpl.getNode(PreferencesImpl.java:228)
> 	at org.apache.jetspeed.prefs.impl.PreferencesImpl.createPrefNode(PreferencesImpl.java:164)
> 	at org.apache.jetspeed.prefs.impl.PreferencesImpl.<init>(PreferencesImpl.java:113)
> 	at org.apache.jetspeed.prefs.impl.PreferencesImpl.<clinit>(PreferencesImpl.java:90)
> 	at org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl.systemRoot(PreferencesFactoryImpl.java:37)
> 	at org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:108)
> 	at org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292)
> 	at org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28)
> 	at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
> 	at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
> 	at org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76)
> 	at org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337)
> 	at org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
> 	at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
> 	at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
> 	at junit.framework.TestCase.runBare(TestCase.java:125)
> 	at junit.framework.TestResult$1.protect(TestResult.java:106)
> 	at junit.framework.TestResult.runProtected(TestResult.java:124)
> 	at junit.framework.TestResult.run(TestResult.java:109)
> 	at junit.framework.TestCase.run(TestCase.java:118)
> 	at junit.framework.TestSuite.runTest(TestSuite.java:208)
> 	at junit.framework.TestSuite.run(TestSuite.java:203)
> 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:325)
> 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:536)
> Caused by: org.apache.ojb.broker.accesslayer.LookupException: Naming Exception while looking up DataSource 
> (java:comp/env/jdbc/jetspeed)
> 	at org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.newConnectionFromDataSource(Unknown Source)
> 	at org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.lookupConnection(Unknown Source)
> 	at org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.getConnection(Unknown Source)
> 	... 47 more
> Caused by: javax.naming.NotContextException: comp is not a subcontext
> 	at tyrex.naming.EnvContext.internalLookup(Unknown Source)
> 	at tyrex.naming.EnvContext.lookup(Unknown Source)
> 	at tyrex.naming.java.JavaContext.lookup(Unknown Source)
> 	at javax.naming.InitialContext.lookup(InitialContext.java:347)
> 	... 50 more
> java.lang.RuntimeException: Failed to initialize prefs api.  java.lang.ExceptionInInitializerError
> 	at org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:114)
> 	at org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292)
> 	at org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28)
> 	at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
> 	at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
> 	at org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76)
> 	at org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337)
> 	at org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
> 	at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
> 	at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
> 	at junit.framework.TestCase.runBare(TestCase.java:125)
> 	at junit.framework.TestResult$1.protect(TestResult.java:106)
> 	at junit.framework.TestResult.runProtected(TestResult.java:124)
> 	at junit.framework.TestResult.run(TestResult.java:109)
> 	at junit.framework.TestCase.run(TestCase.java:118)
> 	at junit.framework.TestSuite.runTest(TestSuite.java:208)
> 	at junit.framework.TestSuite.run(TestSuite.java:203)
> 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:325)
> 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:536)
> org.apache.jetspeed.exception.JetspeedException: Jetspeed Initialization exception!
> 	at org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:166)
> 	at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
> 	at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
> 	at junit.framework.TestCase.runBare(TestCase.java:125)
> 	at junit.framework.TestResult$1.protect(TestResult.java:106)
> 	at junit.framework.TestResult.runProtected(TestResult.java:124)
> 	at junit.framework.TestResult.run(TestResult.java:109)
> 	at junit.framework.TestCase.run(TestCase.java:118)
> 	at junit.framework.TestSuite.runTest(TestSuite.java:208)
> 	at junit.framework.TestSuite.run(TestSuite.java:203)
> 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:325)
> 	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:536)
> Caused by: java.lang.RuntimeException: Failed to initialize prefs api.  java.lang.ExceptionInInitializerError
> 	at org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:114)
> 	at org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292)
> 	at org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28)
> 	at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
> 	at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
> 	at org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76)
> 	at org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337)
> 	at org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
> 	... 11 more
> ------------- ---------------- ---------------
> Testcase: testEngine(org.apache.jetspeed.engine.TestEngine):	Caused an ERROR
> Unable to create Engine
> org.apache.jetspeed.exception.JetspeedException: Unable to create Engine
> 	at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:70)
> 	at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
> Caused by: org.apache.jetspeed.exception.JetspeedException: Jetspeed Initialization exception!
> 	at org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:166)
> 	at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
> 	... 10 more
> Caused by: java.lang.RuntimeException: Failed to initialize prefs api.  java.lang.ExceptionInInitializerError
> 	at org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:114)
> 	at org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292)
> 	at org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28)
> 	at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
> 	at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
> 	at org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76)
> 	at org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337)
> 	at org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
> 	... 11 more
> 
> 
> 
> >>
> >>Regards,
> >>   Serge Huber.
> >>
> >>At 18:59 21.06.2004, you wrote:
> >>
> >>
> >>>I forgot to mention my environment :
> >>>
> >>>- latest J2 from CVS HEAD, including Ate's properties change
> >>>- Windows XP SP 1
> >>>- Sun JDK 1.4.2_01
> >>>- Tomcat 4.1.30
> >>>
> >>>My guess about this problem is that as the JVM's Preferences impl uses the 
> >>>system class loader (see my previous mail), we cannot access the 
> >>>PreferencesFactoryImpl which is in a child class loader (the webapp's 
> >>>class loader). Now I would love to be able to propose a workaround, but 
> >>>since this seems to be a problem with the JDK's implementation and doesn't 
> >>>offer an alternate way to set a class loader, I'm not sure there are any 
> >>>options...
> >>>
> >>>Anyway, it might also just be my setup. Can somebody reproduce this problem ?
> >>>
> >>>Regards,
> >>>  Serge Huber.
> >>>
> >>>At 18:44 21.06.2004, you wrote:
> >>>
> >>>
> >>>>Scott,
> >>>>
> >>>>I did a complete checkout of J2, then :
> >>>>
> >>>>allClean
> >>>>allBuild
> >>>>quickStart
> >>>>
> >>>>and then started Tomcat, here is the log of what happened :
> >>>>
> >>>> INFO: Preparing to deploy portlet app "HW_App"
> >>>> INFO: Deploying portlet applicaion WAR demo.war
> >>>> INFO: Portlet application deployment target directory is 
> >>>>C:\java\technologies\jakarta-tomcat\webapps/HW_App
> >>>>java.lang.InternalError: Can't instantiate Preferences factory 
> >>>>java.lang.ClassNotFoundException: 
> >>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>>>        at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> >>>>        at 
> >>>>org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
> >>>>        at 
> >>>>org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
> >>>>        at 
> >>>>org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
> >>>>        at 
> >>>>org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> >>>>        at 
> >>>>org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> >>>>        at 
> >>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> >>>>Source)
> >>>>        at 
> >>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> >>>>Source)
> >>>>        at 
> >>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> >>>>Source)
> >>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>>>        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >>>>        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> >>>>        at org.apache.commons.digester.Digester.parse(Digester.java:1586)
> >>>>        at 
> >>>>org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
> >>>>        at 
> >>>>org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
> >>>>        at 
> >>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
> >>>>        at 
> >>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
> >>>>        at 
> >>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
> >>>>        at 
> >>>>org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
> >>>>        at 
> >>>>org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
> >>>>        at 
> >>>>org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
> >>>>        at 
> >>>>org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
> >>>>        at 
> >>>>org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
> >>>>ERROR: Unable to register portlet application, HW_App, through the 
> >>>>portlet registry: 
> >>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could not
> >>>>unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
> >>>>Preferences factory java.lang.ClassNotFoundException: 
> >>>>org.apache.jetspeed.prefs.impl.Preferenc
> >>>>esFactoryImpl
> >>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
> >>>>not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
> >>>>Preferences factory
> >>>> java.lang.ClassNotFoundException: 
> >>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>>>        at 
> >>>>org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172)
> >>>>        at 
> >>>>org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
> >>>>        at 
> >>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
> >>>>        at 
> >>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
> >>>>        at 
> >>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
> >>>>        at 
> >>>>org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
> >>>>        at 
> >>>>org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
> >>>>        at 
> >>>>org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
> >>>>        at 
> >>>>org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
> >>>>        at 
> >>>>org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
> >>>>Caused by: java.lang.InternalError: Can't instantiate Preferences factory 
> >>>>java.lang.ClassNotFoundException: 
> >>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
> >>>>l
> >>>>        at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> >>>>        at 
> >>>>org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
> >>>>        at 
> >>>>org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
> >>>>        at 
> >>>>org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
> >>>>        at 
> >>>>org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> >>>>        at 
> >>>>org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> >>>>        at 
> >>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> >>>>Source)
> >>>>        at 
> >>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> >>>>Source)
> >>>>        at 
> >>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> >>>>Source)
> >>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>>>        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >>>>        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> >>>>        at org.apache.commons.digester.Digester.parse(Digester.java:1586)
> >>>>        at 
> >>>>org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
> >>>>        ... 9 more
> >>>>ERROR: Unexpected exception deploying portlet application: 
> >>>>org.apache.jetspeed.components.portletregistry.RegistryException: Unable 
> >>>>to register portlet applicat
> >>>>ion, HW_App, through the portlet registry: 
> >>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
> >>>>not unmarshal portlet.xml. java.lang.InternalE
> >>>>rror: Can't instantiate Preferences factory 
> >>>>java.lang.ClassNotFoundException: 
> >>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl attempting rollback...
> >>>>org.apache.jetspeed.components.portletregistry.RegistryException: Unable 
> >>>>to register portlet application, HW_App, through the portlet registry: 
> >>>>org.apache.jetsp
> >>>>eed.tools.pamanager.PortletApplicationException: Could not unmarshal 
> >>>>portlet.xml. java.lang.InternalError: Can't instantiate Preferences 
> >>>>factory java.lang.Class
> >>>>NotFoundException: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>>>        at 
> >>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383)
> >>>>        at 
> >>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
> >>>>        at 
> >>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
> >>>>        at 
> >>>>org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
> >>>>        at 
> >>>>org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
> >>>>        at 
> >>>>org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
> >>>>        at 
> >>>>org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
> >>>>        at 
> >>>>org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
> >>>>Caused by: 
> >>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
> >>>>not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate Preferen
> >>>>ces factory java.lang.ClassNotFoundException: 
> >>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>>>        at 
> >>>>org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172)
> >>>>        at 
> >>>>org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
> >>>>        at 
> >>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
> >>>>        ... 7 more
> >>>>Caused by: java.lang.InternalError: Can't instantiate Preferences factory 
> >>>>java.lang.ClassNotFoundException: 
> >>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
> >>>>l
> >>>>        at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> >>>>        at 
> >>>>org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
> >>>>        at 
> >>>>org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
> >>>>        at 
> >>>>org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
> >>>>        at 
> >>>>org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> >>>>        at 
> >>>>org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> >>>>        at 
> >>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> >>>>Source)
> >>>>        at 
> >>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> >>>>Source)
> >>>>        at 
> >>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> >>>>Source)
> >>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>>>        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >>>>        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> >>>>        at org.apache.commons.digester.Digester.parse(Digester.java:1586)
> >>>>        at 
> >>>>org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
> >>>>        ... 9 more
> >>>> INFO: Exception in deploy. Rollback of application deployment...
> >>>> INFO: Rollback: Remove 
> >>>>C:\java\technologies\jakarta-tomcat\webapps/HW_App and all sub-directories.
> >>>>ERROR: org.apache.jetspeed.deployment.DeploymentException: Error 
> >>>>deploying portlet app: 
> >>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: org.apa
> >>>>che.jetspeed.components.portletregistry.RegistryException: Unable to 
> >>>>register portlet application, HW_App, through the portlet registry: 
> >>>>org.apache.jetspeed.too
> >>>>ls.pamanager.PortletApplicationException: Could not unmarshal 
> >>>>portlet.xml. java.lang.InternalError: Can't instantiate Preferences 
> >>>>factory java.lang.ClassNotFoun
> >>>>dException: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>>>org.apache.jetspeed.deployment.DeploymentException: Error deploying 
> >>>>portlet app: 
> >>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: org.apache.jet
> >>>>speed.components.portletregistry.RegistryException: Unable to register 
> >>>>portlet application, HW_App, through the portlet registry: 
> >>>>org.apache.jetspeed.tools.pama
> >>>>nager.PortletApplicationException: Could not unmarshal portlet.xml. 
> >>>>java.lang.InternalError: Can't instantiate Preferences factory 
> >>>>java.lang.ClassNotFoundExcept
> >>>>ion: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>>>        at 
> >>>>org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:128)
> >>>>        at 
> >>>>org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
> >>>>        at 
> >>>>org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
> >>>>        at 
> >>>>org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
> >>>>Caused by: 
> >>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
> >>>>org.apache.jetspeed.components.portletregistry.RegistryException: Unable 
> >>>>to register
> >>>> portlet application, HW_App, through the portlet registry: 
> >>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
> >>>>not unmarshal portlet.xml. ja
> >>>>va.lang.InternalError: Can't instantiate Preferences factory 
> >>>>java.lang.ClassNotFoundException: 
> >>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>>>        at 
> >>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:319)
> >>>>        at 
> >>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
> >>>>        at 
> >>>>org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
> >>>>        at 
> >>>>org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
> >>>>        ... 3 more
> >>>>Caused by: 
> >>>>org.apache.jetspeed.components.portletregistry.RegistryException: Unable 
> >>>>to register portlet application, HW_App, through the portlet registry: org.a
> >>>>pache.jetspeed.tools.pamanager.PortletApplicationException: Could not 
> >>>>unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
> >>>>Preferences factory java
> >>>>.lang.ClassNotFoundException: 
> >>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>>>        at 
> >>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383)
> >>>>        at 
> >>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
> >>>>        ... 6 more
> >>>>Caused by: 
> >>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
> >>>>not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate Preferen
> >>>>ces factory java.lang.ClassNotFoundException: 
> >>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>>>        at 
> >>>>org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172)
> >>>>        at 
> >>>>org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
> >>>>        at 
> >>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
> >>>>        ... 7 more
> >>>>Caused by: java.lang.InternalError: Can't instantiate Preferences factory 
> >>>>java.lang.ClassNotFoundException: 
> >>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
> >>>>l
> >>>>        at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> >>>>        at 
> >>>>org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
> >>>>        at 
> >>>>org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
> >>>>        at 
> >>>>org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
> >>>>        at 
> >>>>org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> >>>>        at 
> >>>>org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> >>>>        at 
> >>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> >>>>Source)
> >>>>        at 
> >>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> >>>>Source)
> >>>>        at 
> >>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> >>>>Source)
> >>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>>>        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >>>>        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> >>>>        at org.apache.commons.digester.Digester.parse(Digester.java:1586)
> >>>>        at 
> >>>>org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
> >>>>        ... 9 more
> >>>> INFO: Loading portlet application from web archive 
> >>>>C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\jetspeed-layouts.war
> >>>> INFO: Preparing to deploy portlet app "jetspeed"
> >>>> INFO: jetspeed-layouts.war will be registered as a local portlet 
> >>>>applicaiton.
> >>>> INFO: Portlet application deployment target directory is jetspeed/jetspeed
> >>>> INFO: Did not load exteneded metadata as it most likely does not 
> >>>>exist.  org.apache.commons.vfs.FileSystemException: Could not read from 
> >>>>"jar:file://C:/java/te
> >>>>chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/jetspeed-portlet.xml" 
> >>>>because it is a not a file.
> >>>> INFO: Loading web.xml into memory....
> >>>> INFO: Saving the portlet.xml in the registry...
> >>>> INFO: Committing registry changes...
> >>>> INFO: FileSystem deployment done.
> >>>> INFO: Adding 
> >>>>jar:file://C:/java/technologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/classes
> >>>>to class path.
> >>>> INFO: Portlet app "jetspeed" successfuly deployed.
> >>>> INFO: Loading portlet application from web archive 
> >>>>C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\pam.war
> >>>> INFO: Preparing to deploy portlet app "pam"
> >>>> INFO: Deploying portlet applicaion WAR pam.war
> >>>> INFO: Portlet application deployment target directory is 
> >>>>C:\java\technologies\jakarta-tomcat\webapps/pam
> >>>>Writing out infused web.xml for pam
> >>>> INFO: Loading web.xml into memory....
> >>>> INFO: Saving the portlet.xml in the registry...
> >>>> INFO: Committing registry changes...
> >>>> INFO: FileSystem deployment done.
> >>>> INFO: Catalina deployment response: OK - Application installTe pour le 
> >>>>chemin de contexte /pam
> >>>>
> >>>> INFO: Portlet app "pam" successfuly deployed.
> >>>> INFO: Loading portlet application from web archive 
> >>>>C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\security.war
> >>>> INFO: Preparing to deploy portlet app "security"
> >>>> INFO: Deploying portlet applicaion WAR security.war
> >>>> INFO: Portlet application deployment target directory is 
> >>>>C:\java\technologies\jakarta-tomcat\webapps/security
> >>>>Writing out infused web.xml for security
> >>>> INFO: Loading web.xml into memory....
> >>>> INFO: Saving the portlet.xml in the registry...
> >>>> INFO: Committing registry changes...
> >>>> INFO: FileSystem deployment done.
> >>>> INFO: Catalina deployment response: OK - Application installTe pour le 
> >>>>chemin de contexte /security
> >>>>
> >>>> INFO: Portlet app "security" successfuly deployed.
> >>>> INFO: Loading portlet application from web archive 
> >>>>C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\struts-demo.war
> >>>> INFO: Preparing to deploy portlet app "struts-demo"
> >>>> INFO: Deploying portlet applicaion WAR struts-demo.war
> >>>> INFO: Portlet application deployment target directory is 
> >>>>C:\java\technologies\jakarta-tomcat\webapps/struts-demo
> >>>>Writing out infused web.xml for struts-demo
> >>>> INFO: Did not load exteneded metadata as it most likely does not 
> >>>>exist.  org.apache.commons.vfs.FileSystemException: Could not read from 
> >>>>"jar:file://C:/java/te
> >>>>chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/struts-demo.war!/WEB-INF/jetspeed-portlet.xml" 
> >>>>because it is a not a file.
> >>>> INFO: Loading web.xml into memory....
> >>>> INFO: Saving the portlet.xml in the registry...
> >>>> INFO: Committing registry changes...
> >>>> INFO: FileSystem deployment done.
> >>>> INFO: Catalina deployment response: OK - Application installTe pour le 
> >>>>chemin de contexte /struts-demo
> >>>>
> >>>> INFO: Portlet app "struts-demo" successfuly deployed.
> >>>>
> >>>>So it seems that even within the J2 webapp there is a problem with the 
> >>>>class loading of the preference factory. What is strange is that some PAs 
> >>>>deployed, but I guess they don't use any preferences ?
> >>>>
> >>>>Regards,
> >>>>  Serge Huber.
> >>>>
> >>>>At 16:43 21.06.2004, you wrote:
> >>>>
> >>>>
> >>>>>Hi Scott,
> >>>>>
> >>>>>Actually I'm calling the FileSystemPAM from my own deployer, within 
> >>>>>Jahia. Maybe I'm missing something in my deployment ? I have the 
> >>>>>jetspeed-prefs*.jar in the WEB-INF/lib directory, along with all of J2, 
> >>>>>and I updated the assembly script a few hours ago.
> >>>>>
> >>>>>I didn't test with auto-deploy, but I could to see if it works better.
> >>>>>
> >>>>>Regards,
> >>>>>  Serge...
> >>>>>
> >>>>>At 16:31 21.06.2004, you wrote:
> >>>>>
> >>>>>>Hi Serge,
> >>>>>>
> >>>>>>
> >>>>>>Is this exception coming from auto-deployment?  Because I am not having
> >>>>>>any issues with deployment.  I made PreferenceProviderImpl Startable so
> >>>>>>this wouldn't happen, maybe this doesn't address all possible scenarios
> >>>>>>though.
> >>>>>>
> >>>>>>
> >>>>>>On Mon, 2004-06-21 at 10:23, Serge Huber wrote:
> >>>>>>
> >>>>>>>Hi,
> >>>>>>>
> >>>>>>>I'm having some problem using the FileSystemPAM from within a web app
> >>>>>>>context (seems to work in the tests, which use the system class loader).
> >>>>>>>
> >>>>>>>Basically I get the following exception :
> >>>>>>>
> >>>>>>>java.lang.InternalError: Can't instantiate Preferences factory
> >>>>>>>java.lang.ClassNotFoundException:
> >>>>>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>>>>>>
> >>>>>>>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> >>>>>>>         at
> >>>>>>>
> >>>>>>
> >>>>>>org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
> >>>>>>
> >>>>>>>         at
> >>>>>>>
> >>>>>>
> >>>>>>org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
> >>>>>>
> >>>>>>>         at
> >>>>>>>
> >>>>>>
> >>>>>>org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
> >>>>>>
> >>>>>>>         at 
> >>>>>>
> >>>>>>org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> >>>>>>
> >>>>>>>         at 
> >>>>>>
> >>>>>>org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
> >>>>>>
> >>>>>>>Source)
> >>>>>>>         at
> >>>>>>>
> >>>>>>
> >>>>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown
> >>>>>>
> >>>>>>>Source)
> >>>>>>>         at
> >>>>>>>
> >>>>>>
> >>>>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> >>>>>>
> >>>>>>
> >>>>>>>Source)
> >>>>>>>         at
> >>>>>>>
> >>>>>>
> >>>>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> >>>>>>
> >>>>>>>Source)
> >>>>>>>         at 
> >>>>>>
> >>>>>>org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> >>>>>>
> >>>>>>>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
> >>>>>>
> >>>>>>Source)
> >>>>>>
> >>>>>>>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >>>>>>>         at 
> >>>>>>
> >>>>>>org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> >>>>>>
> >>>>>>>         at 
> >>>>>>
> >>>>>>org.apache.commons.digester.Digester.parse(Digester.java:1586)
> >>>>>>
> >>>>>>>         at
> >>>>>>>
> >>>>>>
> >>>>>>org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
> >>>>>>
> >>>>>>>         at
> >>>>>>>
> >>>>>>
> >>>>>>org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
> >>>>>>
> >>>>>>>         at
> >>>>>>>
> >>>>>>
> >>>>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
> >>>>>>
> >>>>>>>         at
> >>>>>>>
> >>>>>>
> >>>>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
> >>>>>>
> >>>>>>>         at
> >>>>>>>
> >>>>>>
> >>>>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
> >>>>>>
> >>>>>>>I looked at the JDK's source and found the following code when 
> >>>>>>
> >>>>>>loading the
> >>>>>>
> >>>>>>>PreferenceFactory implementation :
> >>>>>>>
> >>>>>>>             factory = (PreferencesFactory)
> >>>>>>>                Class.forName(factoryName, false,
> >>>>>>>ClassLoader.getSystemClassLoader()).newInstance();
> >>>>>>>
> >>>>>>>If this means what I think it does, the preference factory may only be
> >>>>>>>loaded from the root class loader, which means that we would need to 
> >>>>>>
> >>>>>>deploy
> >>>>>>
> >>>>>>>the jetspeed-prefs*.jar into Tomcat's classpath or something.
> >>>>>>>
> >>>>>>>Is this analysis correct ? If so, how to we get around this ?
> >>>>>>>
> >>>>>>>Regards,
> >>>>>>>   Serge Huber.
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> >>>>>>>www.jahia.org : A collaborative source CMS and Portal Server
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>---------------------------------------------------------------------
> >>>>>>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> >>>>>>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> >>>>>>
> >>>>>>Regards,
> >>>>>>--
> >>>>>>******************************************
> >>>>>>*           Scott T. Weaver              *
> >>>>>>*         <we...@apache.org>            *
> >>>>>>*     <http://www.einnovation.com>       *
> >>>>>>* -------------------------------------- *
> >>>>>>*   Apache Jetspeed Enterprise Portal    *
> >>>>>>*     Apache Pluto Portlet Container     *
> >>>>>>*                                        *
> >>>>>>* OpenEditPro, Website Content Mangement *
> >>>>>>*     <http://www.openeditpro.com>       *
> >>>>>>******************************************
> >>>>>>
> >>>>>>
> >>>>>>---------------------------------------------------------------------
> >>>>>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> >>>>>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> >>>>>
> >>>>>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> >>>>>www.jahia.org : A collaborative source CMS and Portal Server
> >>>>>
> >>>>>
> >>>>>---------------------------------------------------------------------
> >>>>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> >>>>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> >>>>
> >>>>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> >>>>www.jahia.org : A collaborative source CMS and Portal Server
> >>>>
> >>>>
> >>>>---------------------------------------------------------------------
> >>>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> >>>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> >>>
> >>>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> >>>www.jahia.org : A collaborative source CMS and Portal Server
> >>>
> >>>
> >>>---------------------------------------------------------------------
> >>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> >>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> >>
> >>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> >>www.jahia.org : A collaborative source CMS and Portal Server 
> >>
> >>
> >>
> >>---------------------------------------------------------------------
> >>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> >>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> >>
> > 
> > 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> > 
> > 
> > 
> > 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
-- 
******************************************
*           Scott T. Weaver              *
*         <we...@apache.org>            *
*     <http://www.einnovation.com>       *   
* -------------------------------------- *
*   Apache Jetspeed Enterprise Portal    *
*     Apache Pluto Portlet Container     *
*                                        *
* OpenEditPro, Website Content Mangement *
*     <http://www.openeditpro.com>       *
******************************************


---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org


Re: [J2] Using FileSystem PAM from web app class loader

Posted by Ate Douma <at...@douma.nu>.
Scott,

I've not really looked into these prefs issues in detail. Do you think these
can be fixed/worked around or are we going to require JDK 1.4.2_02 or higher?


Serge Huber wrote:

> 
> Ok I tested the latest CVS HEAD with :
> 
> - JDK 1.4.2_04 : no problem, everything starts up fine, and deployment 
> works
> - JDK 1.4.1_01 : same problem as I reported before, with stack traces a 
> little different due to the changes in the loading of the class, but the 
> JDK's Pref API still doesn't find the class because it tries to use the 
> system class loader.
> 
> Here is the complete startup log :
> 
> 22 juin 2004 09:58:39 org.apache.coyote.http11.Http11Protocol init
> INFO: Initialisation de Coyote HTTP/1.1 sur le port 8080
> DTmarrage du service Tomcat-Standalone
> Apache Tomcat/4.1.30
> 22 juin 2004 09:58:43 org.apache.struts.util.PropertyMessageResources 
> <init>
> INFO: Initializing, config='org.apache.struts.util.LocalStrings', 
> returnNull=true
> 22 juin 2004 09:58:43 org.apache.struts.util.PropertyMessageResources 
> <init>
> INFO: Initializing, config='org.apache.struts.action.ActionResources', 
> returnNull=true
> 22 juin 2004 09:58:44 org.apache.struts.util.PropertyMessageResources 
> <init>
> INFO: Initializing, 
> config='org.apache.webapp.admin.ApplicationResources', returnNull=true
> log4j:WARN No appenders could be found for logger (console).
> log4j:WARN Please initialize the log4j system properly.
> JNDI System Property flag null
> cn=org.nanocontainer.script.groovy.GroovyContainerBuilder
> java.lang.RuntimeException: Failed to initialize prefs api.  
> java.lang.InternalError: Can't instantiate Preferences factory 
> java.lang.ClassNotFoundException: or
> g.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>         at 
> org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:113) 
> 
>         at 
> org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292) 
> 
>         at 
> org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28) 
> 
>         at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
>         at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
>         at 
> org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76) 
> 
>         at 
> org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337) 
> 
>         at 
> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
>         at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
>         at 
> org.apache.jetspeed.engine.JetspeedServlet.init(JetspeedServlet.java:130)
>         at 
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:935) 
> 
>         at 
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:823)
>         at 
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3427) 
> 
>         at 
> org.apache.catalina.core.StandardContext.start(StandardContext.java:3628)
>         at 
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:821) 
> 
>         at 
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
>         at 
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
>         at 
> org.apache.catalina.core.StandardHostDeployer.addChild(StandardHostDeployer.java:700) 
> 
>         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)
>         at 
> org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:252)
>         at 
> org.apache.commons.digester.SetNextRule.end(SetNextRule.java:256)
>         at org.apache.commons.digester.Rule.end(Rule.java:276)
>         at 
> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>         at 
> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> Source)
>         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown 
> Source)
>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
> Source)
>         at org.apache.commons.digester.Digester.parse(Digester.java:1567)
>         at 
> org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:385) 
> 
>         at 
> org.apache.catalina.core.StandardHost.install(StandardHost.java:819)
>         at 
> org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:442) 
> 
>         at 
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:399)
>         at 
> org.apache.catalina.startup.HostConfig.start(HostConfig.java:718)
>         at 
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:358)
>         at 
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166) 
> 
>         at 
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1196)
>         at 
> org.apache.catalina.core.StandardHost.start(StandardHost.java:754)
>         at 
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
>         at 
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:363)
>         at 
> org.apache.catalina.core.StandardService.start(StandardService.java:497)
>         at 
> org.apache.catalina.core.StandardServer.start(StandardServer.java:2190)
>         at org.apache.catalina.startup.Catalina.start(Catalina.java:512)
>         at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
>         at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
>         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)
>         at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)
> org.apache.jetspeed.exception.JetspeedException: Jetspeed Initialization 
> exception!
>         at 
> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:166)
>         at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
>         at 
> org.apache.jetspeed.engine.JetspeedServlet.init(JetspeedServlet.java:130)
>         at 
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:935) 
> 
>         at 
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:823)
>         at 
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3427) 
> 
>         at 
> org.apache.catalina.core.StandardContext.start(StandardContext.java:3628)
>         at 
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:821) 
> 
>         at 
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
>         at 
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
>         at 
> org.apache.catalina.core.StandardHostDeployer.addChild(StandardHostDeployer.java:700) 
> 
>         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)
>         at 
> org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:252)
>         at 
> org.apache.commons.digester.SetNextRule.end(SetNextRule.java:256)
>         at org.apache.commons.digester.Rule.end(Rule.java:276)
>         at 
> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>         at 
> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> Source)
>         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown 
> Source)
>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
> Source)
>         at org.apache.commons.digester.Digester.parse(Digester.java:1567)
>         at 
> org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:385) 
> 
>         at 
> org.apache.catalina.core.StandardHost.install(StandardHost.java:819)
>         at 
> org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:442) 
> 
>         at 
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:399)
>         at 
> org.apache.catalina.startup.HostConfig.start(HostConfig.java:718)
>         at 
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:358)
>         at 
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166) 
> 
>         at 
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1196)
>         at 
> org.apache.catalina.core.StandardHost.start(StandardHost.java:754)
>         at 
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
>         at 
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:363)
>         at 
> org.apache.catalina.core.StandardService.start(StandardService.java:497)
>         at 
> org.apache.catalina.core.StandardServer.start(StandardServer.java:2190)
>         at org.apache.catalina.startup.Catalina.start(Catalina.java:512)
>         at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
>         at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
>         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)
>         at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)
> Caused by: java.lang.RuntimeException: Failed to initialize prefs api.  
> java.lang.InternalError: Can't instantiate Preferences factory 
> java.lang.ClassNotFoundEx
> ception: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>         at 
> org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:113) 
> 
>         at 
> org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292) 
> 
>         at 
> org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28) 
> 
>         at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
>         at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
>         at 
> org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76) 
> 
>         at 
> org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337) 
> 
>         at 
> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
>         ... 48 more
> FATAL: Jetspeed: init() failed:
> org.apache.jetspeed.exception.JetspeedException: Unable to create Engine
>         at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:70)
>         at 
> org.apache.jetspeed.engine.JetspeedServlet.init(JetspeedServlet.java:130)
>         at 
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:935) 
> 
>         at 
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:823)
>         at 
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3427) 
> 
>         at 
> org.apache.catalina.core.StandardContext.start(StandardContext.java:3628)
>         at 
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:821) 
> 
>         at 
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
>         at 
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
>         at 
> org.apache.catalina.core.StandardHostDeployer.addChild(StandardHostDeployer.java:700) 
> 
>         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)
>         at 
> org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:252)
>         at 
> org.apache.commons.digester.SetNextRule.end(SetNextRule.java:256)
>         at org.apache.commons.digester.Rule.end(Rule.java:276)
>         at 
> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>         at 
> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> Source)
>         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown 
> Source)
>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
> Source)
>         at org.apache.commons.digester.Digester.parse(Digester.java:1567)
>         at 
> org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:385) 
> 
>         at 
> org.apache.catalina.core.StandardHost.install(StandardHost.java:819)
>         at 
> org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:442) 
> 
>         at 
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:399)
>         at 
> org.apache.catalina.startup.HostConfig.start(HostConfig.java:718)
>         at 
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:358)
>         at 
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166) 
> 
>         at 
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1196)
>         at 
> org.apache.catalina.core.StandardHost.start(StandardHost.java:754)
>         at 
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
>         at 
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:363)
>         at 
> org.apache.catalina.core.StandardService.start(StandardService.java:497)
>         at 
> org.apache.catalina.core.StandardServer.start(StandardServer.java:2190)
>         at org.apache.catalina.startup.Catalina.start(Catalina.java:512)
>         at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
>         at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
>         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)
>         at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)
> Caused by: org.apache.jetspeed.exception.JetspeedException: Jetspeed 
> Initialization exception!
>         at 
> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:166)
>         at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
>         ... 47 more
> Caused by: java.lang.RuntimeException: Failed to initialize prefs api.  
> java.lang.InternalError: Can't instantiate Preferences factory 
> java.lang.ClassNotFoundEx
> ception: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>         at 
> org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:113) 
> 
>         at 
> org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292) 
> 
>         at 
> org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28) 
> 
>         at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
>         at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
>         at 
> org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76) 
> 
>         at 
> org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337) 
> 
>         at 
> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
>         ... 48 more
> org.apache.jetspeed.exception.JetspeedException: Unable to create Engine
>         at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:70)
>         at 
> org.apache.jetspeed.engine.JetspeedServlet.init(JetspeedServlet.java:130)
>         at 
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:935) 
> 
>         at 
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:823)
>         at 
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3427) 
> 
>         at 
> org.apache.catalina.core.StandardContext.start(StandardContext.java:3628)
>         at 
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:821) 
> 
>         at 
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
>         at 
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
>         at 
> org.apache.catalina.core.StandardHostDeployer.addChild(StandardHostDeployer.java:700) 
> 
>         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)
>         at 
> org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:252)
>         at 
> org.apache.commons.digester.SetNextRule.end(SetNextRule.java:256)
>         at org.apache.commons.digester.Rule.end(Rule.java:276)
>         at 
> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>         at 
> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> Source)
>         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown 
> Source)
>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
> Source)
>         at org.apache.commons.digester.Digester.parse(Digester.java:1567)
>         at 
> org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:385) 
> 
>         at 
> org.apache.catalina.core.StandardHost.install(StandardHost.java:819)
>         at 
> org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:442) 
> 
>         at 
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:399)
>         at 
> org.apache.catalina.startup.HostConfig.start(HostConfig.java:718)
>         at 
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:358)
>         at 
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166) 
> 
>         at 
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1196)
>         at 
> org.apache.catalina.core.StandardHost.start(StandardHost.java:754)
>         at 
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
>         at 
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:363)
>         at 
> org.apache.catalina.core.StandardService.start(StandardService.java:497)
>         at 
> org.apache.catalina.core.StandardServer.start(StandardServer.java:2190)
>         at org.apache.catalina.startup.Catalina.start(Catalina.java:512)
>         at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
>         at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
>         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)
>         at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)
> Caused by: org.apache.jetspeed.exception.JetspeedException: Jetspeed 
> Initialization exception!
>         at 
> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:166)
>         at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
>         ... 47 more
> Caused by: java.lang.RuntimeException: Failed to initialize prefs api.  
> java.lang.InternalError: Can't instantiate Preferences factory 
> java.lang.ClassNotFoundEx
> ception: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>         at 
> org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:113) 
> 
>         at 
> org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292) 
> 
>         at 
> org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28) 
> 
>         at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
>         at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
>         at 
> org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76) 
> 
>         at 
> org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337) 
> 
>         at 
> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
>         ... 48 more
> 
>  INFO: Jetspeed Container Initialization complete, Ready to service 
> requests.
> 22 juin 2004 09:58:58 org.apache.coyote.http11.Http11Protocol start
> INFO: DTmarrage de Coyote HTTP/1.1 sur le port 8080
> 22 juin 2004 09:58:58 org.apache.jk.common.ChannelSocket init
> INFO: JK2: ajp13 listening on /0.0.0.0:8009
> 22 juin 2004 09:58:58 org.apache.jk.server.JkMain start
> INFO: Jk running ID=0 time=16/47 
> config=C:\java\technologies\jakarta-tomcat\bin\..\conf\jk2.properties
> 
> At 21:59 21.06.2004, you wrote:
> 
>> Updated again and now it works!
>> Great job. Seems we are up and running again on cvs head.
>>
>> I don't know how it is with jdk < 1.4.2_02 though. Serge?
>>
>> Ate Douma wrote:
>>
>>>
>>> Scott T Weaver wrote:
>>>
>>>> On Mon, 2004-06-21 at 13:46, Serge Huber wrote:
>>>>
>>>>> Found my problem !!
>>>>>
>>>>> It's amazing, but it actually explains why the problem was not 
>>>>> happening to everybody. It's a problem that only exists with JDK 
>>>>> 1.4.2_01 and earlier. It seems that in JDK 1.4.2_02 the 
>>>>> implementation of classloading for the factory has changed. Before 
>>>>> _02 they used the System class loader, whereas in _02 and later if 
>>>>> the class is not found in the system class loader, it then tries in 
>>>>> the Thread class loader.
>>>>
>>>>
>>>>
>>>>
>>>> I am using 1.4.2_04-b05 on Mandrake Linux and have the same problem you
>>>> and Ate were having.  Hmm, maybe they forgot to fix the Linux dist!
>>>>
>>>>
>>>>> For more details go to :
>>>>>
>>>>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4788410
>>>>>
>>>>> To confirm I upgraded to JDK 1.4.2_04 and I now have the preference 
>>>>> factory loading fine.
>>>>>
>>>>> Now this begs the question : do we want J2 to require JDK 1.4.2_02 
>>>>> or later or do we need to change the pref api implementation to be 
>>>>> more portable ?
>>>
>>> As I reported I had the problem with JDK 1.4.2_04 so it seems
>>> it is *not* fixed from 1.4.2_4.
>>> I did a quick update to get Scotts fix and tried to build again.
>>> Now I get a test failure in o.a.j.engine.TestEngine.
>>> I'm sorry but I have a meeting now so I can't help out for the next 
>>> few hours...
>>> TEST-org.apache.jetspeed.engine.TestEngine.txt:
>>> Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 2.484 sec
>>> ------------- Standard Output ---------------
>>>  INFO: Jetspeed environment attempting to initialize portal Engine...
>>> JNDI System Property flag null
>>> cn=org.nanocontainer.script.groovy.GroovyContainerBuilder
>>> [org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl] 
>>> ERROR: Naming Exception while looking up DataSource 
>>> (java:comp/env/jdbc/jetspeed)
>>> comp is not a subcontext
>>> [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR: 
>>> PersistenceBrokerException during the execution of the query: Used 
>>> ConnectionManager instance could not obtain a connection
>>> Used ConnectionManager instance could not obtain a connection
>>> ------------- ---------------- ---------------
>>> ------------- Standard Error -----------------
>>> javax.naming.NotContextException: comp is not a subcontext
>>>     at tyrex.naming.EnvContext.internalLookup(Unknown Source)
>>>     at tyrex.naming.EnvContext.lookup(Unknown Source)
>>>     at tyrex.naming.java.JavaContext.lookup(Unknown Source)
>>>     at javax.naming.InitialContext.lookup(InitialContext.java:347)
>>>     at 
>>> org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.newConnectionFromDataSource(Unknown 
>>> Source)
>>>     at 
>>> org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.lookupConnection(Unknown 
>>> Source)
>>>     at 
>>> org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.getConnection(Unknown 
>>> Source)
>>>     at 
>>> org.apache.ojb.broker.accesslayer.StatementManager.getPreparedStatement(Unknown 
>>> Source)
>>>     at 
>>> org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(Unknown 
>>> Source)
>>>     at 
>>> org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(Unknown 
>>> Source)
>>>     at org.apache.ojb.broker.accesslayer.RsIterator.<init>(Unknown 
>>> Source)
>>>     at 
>>> org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(Unknown 
>>>   Source)
>>>     at 
>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(Unknown 
>>> Source)
>>>     at 
>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(Unknown 
>>> Source)
>>>     at 
>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Unknown 
>>>   Source)
>>>     at 
>>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown 
>>> Source)
>>>     at 
>>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown 
>>> Source)
>>>     at 
>>> org.apache.jetspeed.components.persistence.store.ojb.pb.PBStore.getObjectByQuery(PBStore.java:224) 
>>>
>>>     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)
>>>     at 
>>> org.picocontainer.defaults.ImplementationHidingComponentAdapter$DelegatingInvocationHandler.invoke(ImplementationHidingComponentAdapter.java:92) 
>>>
>>>     at $Proxy0.getObjectByQuery(Unknown Source)
>>>     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)
>>>     at 
>>> org.apache.jetspeed.components.adapters.AbstractDelegationStrategy.invoke(AbstractDelegationStrategy.java:66) 
>>>
>>>     at $Proxy0.getObjectByQuery(Unknown Source)
>>>     at 
>>> org.apache.jetspeed.prefs.impl.PreferencesImpl.getNode(PreferencesImpl.java:228) 
>>>
>>>     at 
>>> org.apache.jetspeed.prefs.impl.PreferencesImpl.createPrefNode(PreferencesImpl.java:164) 
>>>
>>>     at 
>>> org.apache.jetspeed.prefs.impl.PreferencesImpl.<init>(PreferencesImpl.java:113) 
>>>
>>>     at 
>>> org.apache.jetspeed.prefs.impl.PreferencesImpl.<clinit>(PreferencesImpl.java:90) 
>>>
>>>     at 
>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl.systemRoot(PreferencesFactoryImpl.java:37) 
>>>
>>>     at 
>>> org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:108) 
>>>
>>>     at 
>>> org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292) 
>>>
>>>     at 
>>> org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28) 
>>>
>>>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
>>>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
>>>     at 
>>> org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76) 
>>>
>>>     at 
>>> org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337) 
>>>
>>>     at 
>>> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
>>>     at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
>>>     at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
>>>     at junit.framework.TestCase.runBare(TestCase.java:125)
>>>     at junit.framework.TestResult$1.protect(TestResult.java:106)
>>>     at junit.framework.TestResult.runProtected(TestResult.java:124)
>>>     at junit.framework.TestResult.run(TestResult.java:109)
>>>     at junit.framework.TestCase.run(TestCase.java:118)
>>>     at junit.framework.TestSuite.runTest(TestSuite.java:208)
>>>     at junit.framework.TestSuite.run(TestSuite.java:203)
>>>     at 
>>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:325) 
>>>
>>>     at 
>>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:536) 
>>>
>>> org.apache.ojb.broker.PersistenceBrokerException: Used 
>>> ConnectionManager instance could not obtain a connection
>>>     at 
>>> org.apache.ojb.broker.accesslayer.StatementManager.getPreparedStatement(Unknown 
>>> Source)
>>>     at 
>>> org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(Unknown 
>>> Source)
>>>     at 
>>> org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(Unknown 
>>> Source)
>>>     at org.apache.ojb.broker.accesslayer.RsIterator.<init>(Unknown 
>>> Source)
>>>     at 
>>> org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(Unknown 
>>>   Source)
>>>     at 
>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(Unknown 
>>> Source)
>>>     at 
>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(Unknown 
>>> Source)
>>>     at 
>>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Unknown 
>>>   Source)
>>>     at 
>>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown 
>>> Source)
>>>     at 
>>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown 
>>> Source)
>>>     at 
>>> org.apache.jetspeed.components.persistence.store.ojb.pb.PBStore.getObjectByQuery(PBStore.java:224) 
>>>
>>>     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)
>>>     at 
>>> org.picocontainer.defaults.ImplementationHidingComponentAdapter$DelegatingInvocationHandler.invoke(ImplementationHidingComponentAdapter.java:92) 
>>>
>>>     at $Proxy0.getObjectByQuery(Unknown Source)
>>>     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)
>>>     at 
>>> org.apache.jetspeed.components.adapters.AbstractDelegationStrategy.invoke(AbstractDelegationStrategy.java:66) 
>>>
>>>     at $Proxy0.getObjectByQuery(Unknown Source)
>>>     at 
>>> org.apache.jetspeed.prefs.impl.PreferencesImpl.getNode(PreferencesImpl.java:228) 
>>>
>>>     at 
>>> org.apache.jetspeed.prefs.impl.PreferencesImpl.createPrefNode(PreferencesImpl.java:164) 
>>>
>>>     at 
>>> org.apache.jetspeed.prefs.impl.PreferencesImpl.<init>(PreferencesImpl.java:113) 
>>>
>>>     at 
>>> org.apache.jetspeed.prefs.impl.PreferencesImpl.<clinit>(PreferencesImpl.java:90) 
>>>
>>>     at 
>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl.systemRoot(PreferencesFactoryImpl.java:37) 
>>>
>>>     at 
>>> org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:108) 
>>>
>>>     at 
>>> org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292) 
>>>
>>>     at 
>>> org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28) 
>>>
>>>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
>>>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
>>>     at 
>>> org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76) 
>>>
>>>     at 
>>> org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337) 
>>>
>>>     at 
>>> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
>>>     at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
>>>     at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
>>>     at junit.framework.TestCase.runBare(TestCase.java:125)
>>>     at junit.framework.TestResult$1.protect(TestResult.java:106)
>>>     at junit.framework.TestResult.runProtected(TestResult.java:124)
>>>     at junit.framework.TestResult.run(TestResult.java:109)
>>>     at junit.framework.TestCase.run(TestCase.java:118)
>>>     at junit.framework.TestSuite.runTest(TestSuite.java:208)
>>>     at junit.framework.TestSuite.run(TestSuite.java:203)
>>>     at 
>>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:325) 
>>>
>>>     at 
>>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:536) 
>>>
>>> Caused by: org.apache.ojb.broker.accesslayer.LookupException: Naming 
>>> Exception while looking up DataSource (java:comp/env/jdbc/jetspeed)
>>>     at 
>>> org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.newConnectionFromDataSource(Unknown 
>>> Source)
>>>     at 
>>> org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.lookupConnection(Unknown 
>>> Source)
>>>     at 
>>> org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.getConnection(Unknown 
>>> Source)
>>>     ... 47 more
>>> Caused by: javax.naming.NotContextException: comp is not a subcontext
>>>     at tyrex.naming.EnvContext.internalLookup(Unknown Source)
>>>     at tyrex.naming.EnvContext.lookup(Unknown Source)
>>>     at tyrex.naming.java.JavaContext.lookup(Unknown Source)
>>>     at javax.naming.InitialContext.lookup(InitialContext.java:347)
>>>     ... 50 more
>>> java.lang.RuntimeException: Failed to initialize prefs api.
>>> java.lang.ExceptionInInitializerError
>>>     at 
>>> org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:114) 
>>>
>>>     at 
>>> org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292) 
>>>
>>>     at 
>>> org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28) 
>>>
>>>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
>>>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
>>>     at 
>>> org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76) 
>>>
>>>     at 
>>> org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337) 
>>>
>>>     at 
>>> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
>>>     at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
>>>     at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
>>>     at junit.framework.TestCase.runBare(TestCase.java:125)
>>>     at junit.framework.TestResult$1.protect(TestResult.java:106)
>>>     at junit.framework.TestResult.runProtected(TestResult.java:124)
>>>     at junit.framework.TestResult.run(TestResult.java:109)
>>>     at junit.framework.TestCase.run(TestCase.java:118)
>>>     at junit.framework.TestSuite.runTest(TestSuite.java:208)
>>>     at junit.framework.TestSuite.run(TestSuite.java:203)
>>>     at 
>>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:325) 
>>>
>>>     at 
>>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:536) 
>>>
>>> org.apache.jetspeed.exception.JetspeedException: Jetspeed 
>>> Initialization exception!
>>>     at 
>>> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:166)
>>>     at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
>>>     at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
>>>     at junit.framework.TestCase.runBare(TestCase.java:125)
>>>     at junit.framework.TestResult$1.protect(TestResult.java:106)
>>>     at junit.framework.TestResult.runProtected(TestResult.java:124)
>>>     at junit.framework.TestResult.run(TestResult.java:109)
>>>     at junit.framework.TestCase.run(TestCase.java:118)
>>>     at junit.framework.TestSuite.runTest(TestSuite.java:208)
>>>     at junit.framework.TestSuite.run(TestSuite.java:203)
>>>     at 
>>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:325) 
>>>
>>>     at 
>>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:536) 
>>>
>>> Caused by: java.lang.RuntimeException: Failed to initialize prefs api.
>>> java.lang.ExceptionInInitializerError
>>>     at 
>>> org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:114) 
>>>
>>>     at 
>>> org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292) 
>>>
>>>     at 
>>> org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28) 
>>>
>>>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
>>>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
>>>     at 
>>> org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76) 
>>>
>>>     at 
>>> org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337) 
>>>
>>>     at 
>>> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
>>>     ... 11 more
>>> ------------- ---------------- ---------------
>>> Testcase: testEngine(org.apache.jetspeed.engine.TestEngine):    
>>> Caused an ERROR
>>> Unable to create Engine
>>> org.apache.jetspeed.exception.JetspeedException: Unable to create Engine
>>>     at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:70)
>>>     at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
>>> Caused by: org.apache.jetspeed.exception.JetspeedException: Jetspeed 
>>> Initialization exception!
>>>     at 
>>> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:166)
>>>     at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
>>>     ... 10 more
>>> Caused by: java.lang.RuntimeException: Failed to initialize prefs api.
>>> java.lang.ExceptionInInitializerError
>>>     at 
>>> org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:114) 
>>>
>>>     at 
>>> org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292) 
>>>
>>>     at 
>>> org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28) 
>>>
>>>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
>>>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
>>>     at 
>>> org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76) 
>>>
>>>     at 
>>> org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337) 
>>>
>>>     at 
>>> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
>>>     ... 11 more
>>>
>>>
>>>>>
>>>>> Regards,
>>>>>   Serge Huber.
>>>>>
>>>>> At 18:59 21.06.2004, you wrote:
>>>>>
>>>>>
>>>>>> I forgot to mention my environment :
>>>>>>
>>>>>> - latest J2 from CVS HEAD, including Ate's properties change
>>>>>> - Windows XP SP 1
>>>>>> - Sun JDK 1.4.2_01
>>>>>> - Tomcat 4.1.30
>>>>>>
>>>>>> My guess about this problem is that as the JVM's Preferences impl 
>>>>>> uses the system class loader (see my previous mail), we cannot 
>>>>>> access the PreferencesFactoryImpl which is in a child class loader 
>>>>>> (the webapp's class loader). Now I would love to be able to 
>>>>>> propose a workaround, but since this seems to be a problem with 
>>>>>> the JDK's implementation and doesn't offer an alternate way to set 
>>>>>> a class loader, I'm not sure there are any options...
>>>>>>
>>>>>> Anyway, it might also just be my setup. Can somebody reproduce 
>>>>>> this problem ?
>>>>>>
>>>>>> Regards,
>>>>>>  Serge Huber.
>>>>>>
>>>>>> At 18:44 21.06.2004, you wrote:
>>>>>>
>>>>>>
>>>>>>> Scott,
>>>>>>>
>>>>>>> I did a complete checkout of J2, then :
>>>>>>>
>>>>>>> allClean
>>>>>>> allBuild
>>>>>>> quickStart
>>>>>>>
>>>>>>> and then started Tomcat, here is the log of what happened :
>>>>>>>
>>>>>>> INFO: Preparing to deploy portlet app "HW_App"
>>>>>>> INFO: Deploying portlet applicaion WAR demo.war
>>>>>>> INFO: Portlet application deployment target directory is 
>>>>>>> C:\java\technologies\jakarta-tomcat\webapps/HW_App
>>>>>>> java.lang.InternalError: Can't instantiate Preferences factory 
>>>>>>> java.lang.ClassNotFoundException: 
>>>>>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>>>        at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>>>>>>        at 
>>>>>>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
>>>>>>> Source)
>>>>>>>        at 
>>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>>>>>>> Source)
>>>>>>>        at 
>>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>>>>>>> Source)
>>>>>>>        at 
>>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un 
>>>>>>> known Source)
>>>>>>>        at 
>>>>>>> org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>>>>>>        at 
>>>>>>> org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>>>>>>        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>>>>>>        at 
>>>>>>> org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>>>>>>>        at 
>>>>>>> org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88) 
>>>>>>>
>>>>>>> ERROR: Unable to register portlet application, HW_App, through 
>>>>>>> the portlet registry: 
>>>>>>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>>>> Could not
>>>>>>> unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
>>>>>>> Preferences factory java.lang.ClassNotFoundException: 
>>>>>>> org.apache.jetspeed.prefs.impl.Preferenc
>>>>>>> esFactoryImpl
>>>>>>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>>>> Could not unmarshal portlet.xml. java.lang.InternalError: Can't 
>>>>>>> instantiate Preferences factory
>>>>>>> java.lang.ClassNotFoundException: 
>>>>>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88) 
>>>>>>>
>>>>>>> Caused by: java.lang.InternalError: Can't instantiate Preferences 
>>>>>>> factory java.lang.ClassNotFoundException: 
>>>>>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
>>>>>>> l
>>>>>>>        at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>>>>>>        at 
>>>>>>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
>>>>>>> Source)
>>>>>>>        at 
>>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>>>>>>> Source)
>>>>>>>        at 
>>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>>>>>>> Source)
>>>>>>>        at 
>>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un 
>>>>>>> known Source)
>>>>>>>        at 
>>>>>>> org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>>>>>>        at 
>>>>>>> org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>>>>>>        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>>>>>>        at 
>>>>>>> org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>>>>>>>        at 
>>>>>>> org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
>>>>>>>
>>>>>>>        ... 9 more
>>>>>>> ERROR: Unexpected exception deploying portlet application: 
>>>>>>> org.apache.jetspeed.components.portletregistry.RegistryException: 
>>>>>>> Unable to register portlet applicat
>>>>>>> ion, HW_App, through the portlet registry: 
>>>>>>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>>>> Could not unmarshal portlet.xml. java.lang.InternalE
>>>>>>> rror: Can't instantiate Preferences factory 
>>>>>>> java.lang.ClassNotFoundException: 
>>>>>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl attempting 
>>>>>>> rollback...
>>>>>>> org.apache.jetspeed.components.portletregistry.RegistryException: 
>>>>>>> Unable to register portlet application, HW_App, through the 
>>>>>>> portlet registry: org.apache.jetsp
>>>>>>> eed.tools.pamanager.PortletApplicationException: Could not 
>>>>>>> unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
>>>>>>> Preferences factory java.lang.Class
>>>>>>> NotFoundException: 
>>>>>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88) 
>>>>>>>
>>>>>>> Caused by: 
>>>>>>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>>>> Could not unmarshal portlet.xml. java.lang.InternalError: Can't 
>>>>>>> instantiate Preferen
>>>>>>> ces factory java.lang.ClassNotFoundException: 
>>>>>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
>>>>>>>
>>>>>>>        ... 7 more
>>>>>>> Caused by: java.lang.InternalError: Can't instantiate Preferences 
>>>>>>> factory java.lang.ClassNotFoundException: 
>>>>>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
>>>>>>> l
>>>>>>>        at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>>>>>>        at 
>>>>>>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
>>>>>>> Source)
>>>>>>>        at 
>>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>>>>>>> Source)
>>>>>>>        at 
>>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>>>>>>> Source)
>>>>>>>        at 
>>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un 
>>>>>>> known Source)
>>>>>>>        at 
>>>>>>> org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>>>>>>        at 
>>>>>>> org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>>>>>>        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>>>>>>        at 
>>>>>>> org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>>>>>>>        at 
>>>>>>> org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
>>>>>>>
>>>>>>>        ... 9 more
>>>>>>> INFO: Exception in deploy. Rollback of application deployment...
>>>>>>> INFO: Rollback: Remove 
>>>>>>> C:\java\technologies\jakarta-tomcat\webapps/HW_App and all 
>>>>>>> sub-directories.
>>>>>>> ERROR: org.apache.jetspeed.deployment.DeploymentException: Error 
>>>>>>> deploying portlet app: 
>>>>>>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>>>> org.apa
>>>>>>> che.jetspeed.components.portletregistry.RegistryException: Unable 
>>>>>>> to register portlet application, HW_App, through the portlet 
>>>>>>> registry: org.apache.jetspeed.too
>>>>>>> ls.pamanager.PortletApplicationException: Could not unmarshal 
>>>>>>> portlet.xml. java.lang.InternalError: Can't instantiate 
>>>>>>> Preferences factory java.lang.ClassNotFoun
>>>>>>> dException: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>>> org.apache.jetspeed.deployment.DeploymentException: Error 
>>>>>>> deploying portlet app: 
>>>>>>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>>>> org.apache.jet
>>>>>>> speed.components.portletregistry.RegistryException: Unable to 
>>>>>>> register portlet application, HW_App, through the portlet 
>>>>>>> registry: org.apache.jetspeed.tools.pama
>>>>>>> nager.PortletApplicationException: Could not unmarshal 
>>>>>>> portlet.xml. java.lang.InternalError: Can't instantiate 
>>>>>>> Preferences factory java.lang.ClassNotFoundExcept
>>>>>>> ion: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:128) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88) 
>>>>>>>
>>>>>>> Caused by: 
>>>>>>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>>>> org.apache.jetspeed.components.portletregistry.RegistryException: 
>>>>>>> Unable to register
>>>>>>> portlet application, HW_App, through the portlet registry: 
>>>>>>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>>>> Could not unmarshal portlet.xml. ja
>>>>>>> va.lang.InternalError: Can't instantiate Preferences factory 
>>>>>>> java.lang.ClassNotFoundException: 
>>>>>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:319) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114) 
>>>>>>>
>>>>>>>        ... 3 more
>>>>>>> Caused by: 
>>>>>>> org.apache.jetspeed.components.portletregistry.RegistryException: 
>>>>>>> Unable to register portlet application, HW_App, through the 
>>>>>>> portlet registry: org.a
>>>>>>> pache.jetspeed.tools.pamanager.PortletApplicationException: Could 
>>>>>>> not unmarshal portlet.xml. java.lang.InternalError: Can't 
>>>>>>> instantiate Preferences factory java
>>>>>>> .lang.ClassNotFoundException: 
>>>>>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
>>>>>>>
>>>>>>>        ... 6 more
>>>>>>> Caused by: 
>>>>>>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>>>> Could not unmarshal portlet.xml. java.lang.InternalError: Can't 
>>>>>>> instantiate Preferen
>>>>>>> ces factory java.lang.ClassNotFoundException: 
>>>>>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
>>>>>>>
>>>>>>>        ... 7 more
>>>>>>> Caused by: java.lang.InternalError: Can't instantiate Preferences 
>>>>>>> factory java.lang.ClassNotFoundException: 
>>>>>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
>>>>>>> l
>>>>>>>        at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
>>>>>>>
>>>>>>>        at 
>>>>>>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>>>>>>        at 
>>>>>>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
>>>>>>> Source)
>>>>>>>        at 
>>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>>>>>>> Source)
>>>>>>>        at 
>>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>>>>>>> Source)
>>>>>>>        at 
>>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un 
>>>>>>> known Source)
>>>>>>>        at 
>>>>>>> org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>>>>>>        at 
>>>>>>> org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>>>>>>        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>>>>>>        at 
>>>>>>> org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>>>>>>>        at 
>>>>>>> org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>>>>>>        at 
>>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
>>>>>>>
>>>>>>>        ... 9 more
>>>>>>> INFO: Loading portlet application from web archive 
>>>>>>> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\jetspeed-layouts.war 
>>>>>>>
>>>>>>> INFO: Preparing to deploy portlet app "jetspeed"
>>>>>>> INFO: jetspeed-layouts.war will be registered as a local portlet 
>>>>>>> applicaiton.
>>>>>>> INFO: Portlet application deployment target directory is 
>>>>>>> jetspeed/jetspeed
>>>>>>> INFO: Did not load exteneded metadata as it most likely does not 
>>>>>>> exist.  org.apache.commons.vfs.FileSystemException: Could not 
>>>>>>> read from "jar:file://C:/java/te
>>>>>>> chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/jetspeed-portlet.xml" 
>>>>>>> because it is a not a file.
>>>>>>> INFO: Loading web.xml into memory....
>>>>>>> INFO: Saving the portlet.xml in the registry...
>>>>>>> INFO: Committing registry changes...
>>>>>>> INFO: FileSystem deployment done.
>>>>>>> INFO: Adding 
>>>>>>> jar:file://C:/java/technologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/classes 
>>>>>>>
>>>>>>> to class path.
>>>>>>> INFO: Portlet app "jetspeed" successfuly deployed.
>>>>>>> INFO: Loading portlet application from web archive 
>>>>>>> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\pam.war 
>>>>>>>
>>>>>>> INFO: Preparing to deploy portlet app "pam"
>>>>>>> INFO: Deploying portlet applicaion WAR pam.war
>>>>>>> INFO: Portlet application deployment target directory is 
>>>>>>> C:\java\technologies\jakarta-tomcat\webapps/pam
>>>>>>> Writing out infused web.xml for pam
>>>>>>> INFO: Loading web.xml into memory....
>>>>>>> INFO: Saving the portlet.xml in the registry...
>>>>>>> INFO: Committing registry changes...
>>>>>>> INFO: FileSystem deployment done.
>>>>>>> INFO: Catalina deployment response: OK - Application installTe 
>>>>>>> pour le chemin de contexte /pam
>>>>>>>
>>>>>>> INFO: Portlet app "pam" successfuly deployed.
>>>>>>> INFO: Loading portlet application from web archive 
>>>>>>> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\security.war 
>>>>>>>
>>>>>>> INFO: Preparing to deploy portlet app "security"
>>>>>>> INFO: Deploying portlet applicaion WAR security.war
>>>>>>> INFO: Portlet application deployment target directory is 
>>>>>>> C:\java\technologies\jakarta-tomcat\webapps/security
>>>>>>> Writing out infused web.xml for security
>>>>>>> INFO: Loading web.xml into memory....
>>>>>>> INFO: Saving the portlet.xml in the registry...
>>>>>>> INFO: Committing registry changes...
>>>>>>> INFO: FileSystem deployment done.
>>>>>>> INFO: Catalina deployment response: OK - Application installTe 
>>>>>>> pour le chemin de contexte /security
>>>>>>>
>>>>>>> INFO: Portlet app "security" successfuly deployed.
>>>>>>> INFO: Loading portlet application from web archive 
>>>>>>> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\struts-demo.war 
>>>>>>>
>>>>>>> INFO: Preparing to deploy portlet app "struts-demo"
>>>>>>> INFO: Deploying portlet applicaion WAR struts-demo.war
>>>>>>> INFO: Portlet application deployment target directory is 
>>>>>>> C:\java\technologies\jakarta-tomcat\webapps/struts-demo
>>>>>>> Writing out infused web.xml for struts-demo
>>>>>>> INFO: Did not load exteneded metadata as it most likely does not 
>>>>>>> exist.  org.apache.commons.vfs.FileSystemException: Could not 
>>>>>>> read from "jar:file://C:/java/te
>>>>>>> chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/struts-demo.war!/WEB-INF/jetspeed-portlet.xml" 
>>>>>>> because it is a not a file.
>>>>>>> INFO: Loading web.xml into memory....
>>>>>>> INFO: Saving the portlet.xml in the registry...
>>>>>>> INFO: Committing registry changes...
>>>>>>> INFO: FileSystem deployment done.
>>>>>>> INFO: Catalina deployment response: OK - Application installTe 
>>>>>>> pour le chemin de contexte /struts-demo
>>>>>>>
>>>>>>> INFO: Portlet app "struts-demo" successfuly deployed.
>>>>>>>
>>>>>>> So it seems that even within the J2 webapp there is a problem 
>>>>>>> with the class loading of the preference factory. What is strange 
>>>>>>> is that some PAs deployed, but I guess they don't use any 
>>>>>>> preferences ?
>>>>>>>
>>>>>>> Regards,
>>>>>>>  Serge Huber.
>>>>>>>
>>>>>>> At 16:43 21.06.2004, you wrote:
>>>>>>>
>>>>>>>
>>>>>>>> Hi Scott,
>>>>>>>>
>>>>>>>> Actually I'm calling the FileSystemPAM from my own deployer, 
>>>>>>>> within Jahia. Maybe I'm missing something in my deployment ? I 
>>>>>>>> have the jetspeed-prefs*.jar in the WEB-INF/lib directory, along 
>>>>>>>> with all of J2, and I updated the assembly script a few hours ago.
>>>>>>>>
>>>>>>>> I didn't test with auto-deploy, but I could to see if it works 
>>>>>>>> better.
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>>  Serge...
>>>>>>>>
>>>>>>>> At 16:31 21.06.2004, you wrote:
>>>>>>>>
>>>>>>>>> Hi Serge,
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Is this exception coming from auto-deployment?  Because I am 
>>>>>>>>> not having
>>>>>>>>> any issues with deployment.  I made PreferenceProviderImpl 
>>>>>>>>> Startable so
>>>>>>>>> this wouldn't happen, maybe this doesn't address all possible 
>>>>>>>>> scenarios
>>>>>>>>> though.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Mon, 2004-06-21 at 10:23, Serge Huber wrote:
>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> I'm having some problem using the FileSystemPAM from within a 
>>>>>>>>>> web app
>>>>>>>>>> context (seems to work in the tests, which use the system 
>>>>>>>>>> class loader).
>>>>>>>>>>
>>>>>>>>>> Basically I get the following exception :
>>>>>>>>>>
>>>>>>>>>> java.lang.InternalError: Can't instantiate Preferences factory
>>>>>>>>>> java.lang.ClassNotFoundException:
>>>>>>>>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>>>>>>
>>>>>>>>>>         at 
>>>>>>>>>> java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>>>>>>>>>         at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.commons.digester.Digester.endElement(Digester.java:1058) 
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
>>>>>>>>>
>>>>>>>>>> Source)
>>>>>>>>>>         at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Source)
>>>>>>>>>>         at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Source)
>>>>>>>>>>         at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Source)
>>>>>>>>>>         at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>>>>>>>>>
>>>>>>>>>>         at 
>>>>>>>>>> org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Source)
>>>>>>>>>
>>>>>>>>>>         at org.apache.xerces.parsers.XMLParser.parse(Unknown 
>>>>>>>>>> Source)
>>>>>>>>>>         at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>>         at
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> I looked at the JDK's source and found the following code when
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> loading the
>>>>>>>>>
>>>>>>>>>> PreferenceFactory implementation :
>>>>>>>>>>
>>>>>>>>>>             factory = (PreferencesFactory)
>>>>>>>>>>                Class.forName(factoryName, false,
>>>>>>>>>> ClassLoader.getSystemClassLoader()).newInstance();
>>>>>>>>>>
>>>>>>>>>> If this means what I think it does, the preference factory may 
>>>>>>>>>> only be
>>>>>>>>>> loaded from the root class loader, which means that we would 
>>>>>>>>>> need to
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> deploy
>>>>>>>>>
>>>>>>>>>> the jetspeed-prefs*.jar into Tomcat's classpath or something.
>>>>>>>>>>
>>>>>>>>>> Is this analysis correct ? If so, how to we get around this ?
>>>>>>>>>>
>>>>>>>>>> Regards,
>>>>>>>>>>   Serge Huber.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>>>>>>>>> www.jahia.org : A collaborative source CMS and Portal Server
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --------------------------------------------------------------------- 
>>>>>>>>>>
>>>>>>>>>> To unsubscribe, e-mail: 
>>>>>>>>>> jetspeed-dev-unsubscribe@jakarta.apache.org
>>>>>>>>>> For additional commands, e-mail: 
>>>>>>>>>> jetspeed-dev-help@jakarta.apache.org
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>> -- 
>>>>>>>>> ******************************************
>>>>>>>>> *           Scott T. Weaver              *
>>>>>>>>> *         <we...@apache.org>            *
>>>>>>>>> *     <http://www.einnovation.com>       *
>>>>>>>>> * -------------------------------------- *
>>>>>>>>> *   Apache Jetspeed Enterprise Portal    *
>>>>>>>>> *     Apache Pluto Portlet Container     *
>>>>>>>>> *                                        *
>>>>>>>>> * OpenEditPro, Website Content Mangement *
>>>>>>>>> *     <http://www.openeditpro.com>       *
>>>>>>>>> ******************************************
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --------------------------------------------------------------------- 
>>>>>>>>>
>>>>>>>>> To unsubscribe, e-mail: 
>>>>>>>>> jetspeed-dev-unsubscribe@jakarta.apache.org
>>>>>>>>> For additional commands, e-mail: 
>>>>>>>>> jetspeed-dev-help@jakarta.apache.org
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>>>>>>> www.jahia.org : A collaborative source CMS and Portal Server
>>>>>>>>
>>>>>>>>
>>>>>>>> --------------------------------------------------------------------- 
>>>>>>>>
>>>>>>>> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>>>>>> For additional commands, e-mail: 
>>>>>>>> jetspeed-dev-help@jakarta.apache.org
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>>>>>> www.jahia.org : A collaborative source CMS and Portal Server
>>>>>>>
>>>>>>>
>>>>>>> --------------------------------------------------------------------- 
>>>>>>>
>>>>>>> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>>>>> For additional commands, e-mail: 
>>>>>>> jetspeed-dev-help@jakarta.apache.org
>>>>>>
>>>>>>
>>>>>>
>>>>>> - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>>>>> www.jahia.org : A collaborative source CMS and Portal Server
>>>>>>
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>>>> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>>>>
>>>>>
>>>>>
>>>>> - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>>>> www.jahia.org : A collaborative source CMS and Portal Server
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>>> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>>>
>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>>>
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> 
> 
> - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> www.jahia.org : A collaborative source CMS and Portal Server
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> 
> 
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org


Re: [J2] Using FileSystem PAM from web app class loader

Posted by Serge Huber <sh...@jahia.com>.
Ok I tested the latest CVS HEAD with :

- JDK 1.4.2_04 : no problem, everything starts up fine, and deployment works
- JDK 1.4.1_01 : same problem as I reported before, with stack traces a 
little different due to the changes in the loading of the class, but the 
JDK's Pref API still doesn't find the class because it tries to use the 
system class loader.

Here is the complete startup log :

22 juin 2004 09:58:39 org.apache.coyote.http11.Http11Protocol init
INFO: Initialisation de Coyote HTTP/1.1 sur le port 8080
DTmarrage du service Tomcat-Standalone
Apache Tomcat/4.1.30
22 juin 2004 09:58:43 org.apache.struts.util.PropertyMessageResources <init>
INFO: Initializing, config='org.apache.struts.util.LocalStrings', 
returnNull=true
22 juin 2004 09:58:43 org.apache.struts.util.PropertyMessageResources <init>
INFO: Initializing, config='org.apache.struts.action.ActionResources', 
returnNull=true
22 juin 2004 09:58:44 org.apache.struts.util.PropertyMessageResources <init>
INFO: Initializing, config='org.apache.webapp.admin.ApplicationResources', 
returnNull=true
log4j:WARN No appenders could be found for logger (console).
log4j:WARN Please initialize the log4j system properly.
JNDI System Property flag null
cn=org.nanocontainer.script.groovy.GroovyContainerBuilder
java.lang.RuntimeException: Failed to initialize prefs 
api.  java.lang.InternalError: Can't instantiate Preferences factory 
java.lang.ClassNotFoundException: or
g.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
         at 
org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:113)
         at 
org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292)
         at 
org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28)
         at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
         at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
         at 
org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76)
         at 
org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337)
         at 
org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
         at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
         at 
org.apache.jetspeed.engine.JetspeedServlet.init(JetspeedServlet.java:130)
         at 
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:935)
         at 
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:823)
         at 
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3427)
         at 
org.apache.catalina.core.StandardContext.start(StandardContext.java:3628)
         at 
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:821)
         at 
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
         at 
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
         at 
org.apache.catalina.core.StandardHostDeployer.addChild(StandardHostDeployer.java:700)
         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)
         at 
org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:252)
         at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:256)
         at org.apache.commons.digester.Rule.end(Rule.java:276)
         at org.apache.commons.digester.Digester.endElement(Digester.java:1058)
         at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
Source)
         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
         at org.apache.commons.digester.Digester.parse(Digester.java:1567)
         at 
org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:385)
         at 
org.apache.catalina.core.StandardHost.install(StandardHost.java:819)
         at 
org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:442)
         at 
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:399)
         at org.apache.catalina.startup.HostConfig.start(HostConfig.java:718)
         at 
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:358)
         at 
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
         at 
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1196)
         at org.apache.catalina.core.StandardHost.start(StandardHost.java:754)
         at 
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
         at 
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:363)
         at 
org.apache.catalina.core.StandardService.start(StandardService.java:497)
         at 
org.apache.catalina.core.StandardServer.start(StandardServer.java:2190)
         at org.apache.catalina.startup.Catalina.start(Catalina.java:512)
         at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
         at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
         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)
         at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)
org.apache.jetspeed.exception.JetspeedException: Jetspeed Initialization 
exception!
         at 
org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:166)
         at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
         at 
org.apache.jetspeed.engine.JetspeedServlet.init(JetspeedServlet.java:130)
         at 
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:935)
         at 
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:823)
         at 
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3427)
         at 
org.apache.catalina.core.StandardContext.start(StandardContext.java:3628)
         at 
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:821)
         at 
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
         at 
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
         at 
org.apache.catalina.core.StandardHostDeployer.addChild(StandardHostDeployer.java:700)
         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)
         at 
org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:252)
         at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:256)
         at org.apache.commons.digester.Rule.end(Rule.java:276)
         at org.apache.commons.digester.Digester.endElement(Digester.java:1058)
         at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
Source)
         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
         at org.apache.commons.digester.Digester.parse(Digester.java:1567)
         at 
org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:385)
         at 
org.apache.catalina.core.StandardHost.install(StandardHost.java:819)
         at 
org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:442)
         at 
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:399)
         at org.apache.catalina.startup.HostConfig.start(HostConfig.java:718)
         at 
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:358)
         at 
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
         at 
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1196)
         at org.apache.catalina.core.StandardHost.start(StandardHost.java:754)
         at 
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
         at 
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:363)
         at 
org.apache.catalina.core.StandardService.start(StandardService.java:497)
         at 
org.apache.catalina.core.StandardServer.start(StandardServer.java:2190)
         at org.apache.catalina.startup.Catalina.start(Catalina.java:512)
         at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
         at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
         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)
         at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)
Caused by: java.lang.RuntimeException: Failed to initialize prefs 
api.  java.lang.InternalError: Can't instantiate Preferences factory 
java.lang.ClassNotFoundEx
ception: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
         at 
org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:113)
         at 
org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292)
         at 
org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28)
         at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
         at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
         at 
org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76)
         at 
org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337)
         at 
org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
         ... 48 more
FATAL: Jetspeed: init() failed:
org.apache.jetspeed.exception.JetspeedException: Unable to create Engine
         at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:70)
         at 
org.apache.jetspeed.engine.JetspeedServlet.init(JetspeedServlet.java:130)
         at 
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:935)
         at 
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:823)
         at 
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3427)
         at 
org.apache.catalina.core.StandardContext.start(StandardContext.java:3628)
         at 
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:821)
         at 
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
         at 
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
         at 
org.apache.catalina.core.StandardHostDeployer.addChild(StandardHostDeployer.java:700)
         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)
         at 
org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:252)
         at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:256)
         at org.apache.commons.digester.Rule.end(Rule.java:276)
         at org.apache.commons.digester.Digester.endElement(Digester.java:1058)
         at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
Source)
         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
         at org.apache.commons.digester.Digester.parse(Digester.java:1567)
         at 
org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:385)
         at 
org.apache.catalina.core.StandardHost.install(StandardHost.java:819)
         at 
org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:442)
         at 
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:399)
         at org.apache.catalina.startup.HostConfig.start(HostConfig.java:718)
         at 
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:358)
         at 
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
         at 
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1196)
         at org.apache.catalina.core.StandardHost.start(StandardHost.java:754)
         at 
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
         at 
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:363)
         at 
org.apache.catalina.core.StandardService.start(StandardService.java:497)
         at 
org.apache.catalina.core.StandardServer.start(StandardServer.java:2190)
         at org.apache.catalina.startup.Catalina.start(Catalina.java:512)
         at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
         at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
         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)
         at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)
Caused by: org.apache.jetspeed.exception.JetspeedException: Jetspeed 
Initialization exception!
         at 
org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:166)
         at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
         ... 47 more
Caused by: java.lang.RuntimeException: Failed to initialize prefs 
api.  java.lang.InternalError: Can't instantiate Preferences factory 
java.lang.ClassNotFoundEx
ception: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
         at 
org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:113)
         at 
org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292)
         at 
org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28)
         at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
         at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
         at 
org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76)
         at 
org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337)
         at 
org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
         ... 48 more
org.apache.jetspeed.exception.JetspeedException: Unable to create Engine
         at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:70)
         at 
org.apache.jetspeed.engine.JetspeedServlet.init(JetspeedServlet.java:130)
         at 
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:935)
         at 
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:823)
         at 
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3427)
         at 
org.apache.catalina.core.StandardContext.start(StandardContext.java:3628)
         at 
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:821)
         at 
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
         at 
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
         at 
org.apache.catalina.core.StandardHostDeployer.addChild(StandardHostDeployer.java:700)
         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)
         at 
org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:252)
         at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:256)
         at org.apache.commons.digester.Rule.end(Rule.java:276)
         at org.apache.commons.digester.Digester.endElement(Digester.java:1058)
         at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
Source)
         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
         at org.apache.commons.digester.Digester.parse(Digester.java:1567)
         at 
org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:385)
         at 
org.apache.catalina.core.StandardHost.install(StandardHost.java:819)
         at 
org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:442)
         at 
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:399)
         at org.apache.catalina.startup.HostConfig.start(HostConfig.java:718)
         at 
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:358)
         at 
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
         at 
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1196)
         at org.apache.catalina.core.StandardHost.start(StandardHost.java:754)
         at 
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
         at 
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:363)
         at 
org.apache.catalina.core.StandardService.start(StandardService.java:497)
         at 
org.apache.catalina.core.StandardServer.start(StandardServer.java:2190)
         at org.apache.catalina.startup.Catalina.start(Catalina.java:512)
         at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
         at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
         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)
         at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)
Caused by: org.apache.jetspeed.exception.JetspeedException: Jetspeed 
Initialization exception!
         at 
org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:166)
         at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
         ... 47 more
Caused by: java.lang.RuntimeException: Failed to initialize prefs 
api.  java.lang.InternalError: Can't instantiate Preferences factory 
java.lang.ClassNotFoundEx
ception: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
         at 
org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:113)
         at 
org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292)
         at 
org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28)
         at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
         at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
         at 
org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76)
         at 
org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337)
         at 
org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
         ... 48 more

  INFO: Jetspeed Container Initialization complete, Ready to service requests.
22 juin 2004 09:58:58 org.apache.coyote.http11.Http11Protocol start
INFO: DTmarrage de Coyote HTTP/1.1 sur le port 8080
22 juin 2004 09:58:58 org.apache.jk.common.ChannelSocket init
INFO: JK2: ajp13 listening on /0.0.0.0:8009
22 juin 2004 09:58:58 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 
time=16/47 
config=C:\java\technologies\jakarta-tomcat\bin\..\conf\jk2.properties

At 21:59 21.06.2004, you wrote:
>Updated again and now it works!
>Great job. Seems we are up and running again on cvs head.
>
>I don't know how it is with jdk < 1.4.2_02 though. Serge?
>
>Ate Douma wrote:
>
>>
>>Scott T Weaver wrote:
>>
>>>On Mon, 2004-06-21 at 13:46, Serge Huber wrote:
>>>
>>>>Found my problem !!
>>>>
>>>>It's amazing, but it actually explains why the problem was not 
>>>>happening to everybody. It's a problem that only exists with JDK 
>>>>1.4.2_01 and earlier. It seems that in JDK 1.4.2_02 the implementation 
>>>>of classloading for the factory has changed. Before _02 they used the 
>>>>System class loader, whereas in _02 and later if the class is not found 
>>>>in the system class loader, it then tries in the Thread class loader.
>>>
>>>
>>>
>>>I am using 1.4.2_04-b05 on Mandrake Linux and have the same problem you
>>>and Ate were having.  Hmm, maybe they forgot to fix the Linux dist!
>>>
>>>
>>>>For more details go to :
>>>>
>>>>http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4788410
>>>>
>>>>To confirm I upgraded to JDK 1.4.2_04 and I now have the preference 
>>>>factory loading fine.
>>>>
>>>>Now this begs the question : do we want J2 to require JDK 1.4.2_02 or 
>>>>later or do we need to change the pref api implementation to be more portable ?
>>As I reported I had the problem with JDK 1.4.2_04 so it seems
>>it is *not* fixed from 1.4.2_4.
>>I did a quick update to get Scotts fix and tried to build again.
>>Now I get a test failure in o.a.j.engine.TestEngine.
>>I'm sorry but I have a meeting now so I can't help out for the next few 
>>hours...
>>TEST-org.apache.jetspeed.engine.TestEngine.txt:
>>Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 2.484 sec
>>------------- Standard Output ---------------
>>  INFO: Jetspeed environment attempting to initialize portal Engine...
>>JNDI System Property flag null
>>cn=org.nanocontainer.script.groovy.GroovyContainerBuilder
>>[org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl] ERROR: 
>>Naming Exception while looking up DataSource (java:comp/env/jdbc/jetspeed)
>>comp is not a subcontext
>>[org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR: 
>>PersistenceBrokerException during the execution of the query: Used 
>>ConnectionManager instance could not obtain a connection
>>Used ConnectionManager instance could not obtain a connection
>>------------- ---------------- ---------------
>>------------- Standard Error -----------------
>>javax.naming.NotContextException: comp is not a subcontext
>>     at tyrex.naming.EnvContext.internalLookup(Unknown Source)
>>     at tyrex.naming.EnvContext.lookup(Unknown Source)
>>     at tyrex.naming.java.JavaContext.lookup(Unknown Source)
>>     at javax.naming.InitialContext.lookup(InitialContext.java:347)
>>     at 
>> org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.newConnectionFromDataSource(Unknown 
>> Source)
>>     at 
>> org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.lookupConnection(Unknown 
>> Source)
>>     at 
>> org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.getConnection(Unknown 
>> Source)
>>     at 
>> org.apache.ojb.broker.accesslayer.StatementManager.getPreparedStatement(Unknown 
>> Source)
>>     at 
>> org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(Unknown Source)
>>     at 
>> org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(Unknown Source)
>>     at org.apache.ojb.broker.accesslayer.RsIterator.<init>(Unknown Source)
>>     at 
>> org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(Unknown 
>>   Source)
>>     at 
>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(Unknown 
>> Source)
>>     at 
>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(Unknown 
>> Source)
>>     at 
>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Unknown 
>>   Source)
>>     at 
>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown 
>> Source)
>>     at 
>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown 
>> Source)
>>     at 
>> org.apache.jetspeed.components.persistence.store.ojb.pb.PBStore.getObjectByQuery(PBStore.java:224) 
>>
>>     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)
>>     at 
>> org.picocontainer.defaults.ImplementationHidingComponentAdapter$DelegatingInvocationHandler.invoke(ImplementationHidingComponentAdapter.java:92) 
>>
>>     at $Proxy0.getObjectByQuery(Unknown Source)
>>     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)
>>     at 
>> org.apache.jetspeed.components.adapters.AbstractDelegationStrategy.invoke(AbstractDelegationStrategy.java:66) 
>>
>>     at $Proxy0.getObjectByQuery(Unknown Source)
>>     at 
>> org.apache.jetspeed.prefs.impl.PreferencesImpl.getNode(PreferencesImpl.java:228) 
>>
>>     at 
>> org.apache.jetspeed.prefs.impl.PreferencesImpl.createPrefNode(PreferencesImpl.java:164) 
>>
>>     at 
>> org.apache.jetspeed.prefs.impl.PreferencesImpl.<init>(PreferencesImpl.java:113) 
>>
>>     at 
>> org.apache.jetspeed.prefs.impl.PreferencesImpl.<clinit>(PreferencesImpl.java:90) 
>>
>>     at 
>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl.systemRoot(PreferencesFactoryImpl.java:37) 
>>
>>     at 
>> org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:108) 
>>
>>     at 
>> org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292) 
>>
>>     at 
>> org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28) 
>>
>>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
>>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
>>     at 
>> org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76) 
>>
>>     at 
>> org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337) 
>>
>>     at 
>> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
>>     at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
>>     at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
>>     at junit.framework.TestCase.runBare(TestCase.java:125)
>>     at junit.framework.TestResult$1.protect(TestResult.java:106)
>>     at junit.framework.TestResult.runProtected(TestResult.java:124)
>>     at junit.framework.TestResult.run(TestResult.java:109)
>>     at junit.framework.TestCase.run(TestCase.java:118)
>>     at junit.framework.TestSuite.runTest(TestSuite.java:208)
>>     at junit.framework.TestSuite.run(TestSuite.java:203)
>>     at 
>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:325) 
>>
>>     at 
>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:536) 
>>
>>org.apache.ojb.broker.PersistenceBrokerException: Used ConnectionManager 
>>instance could not obtain a connection
>>     at 
>> org.apache.ojb.broker.accesslayer.StatementManager.getPreparedStatement(Unknown 
>> Source)
>>     at 
>> org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(Unknown Source)
>>     at 
>> org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(Unknown Source)
>>     at org.apache.ojb.broker.accesslayer.RsIterator.<init>(Unknown Source)
>>     at 
>> org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(Unknown 
>>   Source)
>>     at 
>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(Unknown 
>> Source)
>>     at 
>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(Unknown 
>> Source)
>>     at 
>> org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Unknown 
>>   Source)
>>     at 
>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown 
>> Source)
>>     at 
>> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown 
>> Source)
>>     at 
>> org.apache.jetspeed.components.persistence.store.ojb.pb.PBStore.getObjectByQuery(PBStore.java:224) 
>>
>>     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)
>>     at 
>> org.picocontainer.defaults.ImplementationHidingComponentAdapter$DelegatingInvocationHandler.invoke(ImplementationHidingComponentAdapter.java:92) 
>>
>>     at $Proxy0.getObjectByQuery(Unknown Source)
>>     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)
>>     at 
>> org.apache.jetspeed.components.adapters.AbstractDelegationStrategy.invoke(AbstractDelegationStrategy.java:66) 
>>
>>     at $Proxy0.getObjectByQuery(Unknown Source)
>>     at 
>> org.apache.jetspeed.prefs.impl.PreferencesImpl.getNode(PreferencesImpl.java:228) 
>>
>>     at 
>> org.apache.jetspeed.prefs.impl.PreferencesImpl.createPrefNode(PreferencesImpl.java:164) 
>>
>>     at 
>> org.apache.jetspeed.prefs.impl.PreferencesImpl.<init>(PreferencesImpl.java:113) 
>>
>>     at 
>> org.apache.jetspeed.prefs.impl.PreferencesImpl.<clinit>(PreferencesImpl.java:90) 
>>
>>     at 
>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl.systemRoot(PreferencesFactoryImpl.java:37) 
>>
>>     at 
>> org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:108) 
>>
>>     at 
>> org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292) 
>>
>>     at 
>> org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28) 
>>
>>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
>>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
>>     at 
>> org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76) 
>>
>>     at 
>> org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337) 
>>
>>     at 
>> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
>>     at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
>>     at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
>>     at junit.framework.TestCase.runBare(TestCase.java:125)
>>     at junit.framework.TestResult$1.protect(TestResult.java:106)
>>     at junit.framework.TestResult.runProtected(TestResult.java:124)
>>     at junit.framework.TestResult.run(TestResult.java:109)
>>     at junit.framework.TestCase.run(TestCase.java:118)
>>     at junit.framework.TestSuite.runTest(TestSuite.java:208)
>>     at junit.framework.TestSuite.run(TestSuite.java:203)
>>     at 
>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:325) 
>>
>>     at 
>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:536) 
>>
>>Caused by: org.apache.ojb.broker.accesslayer.LookupException: Naming 
>>Exception while looking up DataSource (java:comp/env/jdbc/jetspeed)
>>     at 
>> org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.newConnectionFromDataSource(Unknown 
>> Source)
>>     at 
>> org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.lookupConnection(Unknown 
>> Source)
>>     at 
>> org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.getConnection(Unknown 
>> Source)
>>     ... 47 more
>>Caused by: javax.naming.NotContextException: comp is not a subcontext
>>     at tyrex.naming.EnvContext.internalLookup(Unknown Source)
>>     at tyrex.naming.EnvContext.lookup(Unknown Source)
>>     at tyrex.naming.java.JavaContext.lookup(Unknown Source)
>>     at javax.naming.InitialContext.lookup(InitialContext.java:347)
>>     ... 50 more
>>java.lang.RuntimeException: Failed to initialize prefs api.
>>java.lang.ExceptionInInitializerError
>>     at 
>> org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:114) 
>>
>>     at 
>> org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292) 
>>
>>     at 
>> org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28) 
>>
>>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
>>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
>>     at 
>> org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76) 
>>
>>     at 
>> org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337) 
>>
>>     at 
>> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
>>     at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
>>     at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
>>     at junit.framework.TestCase.runBare(TestCase.java:125)
>>     at junit.framework.TestResult$1.protect(TestResult.java:106)
>>     at junit.framework.TestResult.runProtected(TestResult.java:124)
>>     at junit.framework.TestResult.run(TestResult.java:109)
>>     at junit.framework.TestCase.run(TestCase.java:118)
>>     at junit.framework.TestSuite.runTest(TestSuite.java:208)
>>     at junit.framework.TestSuite.run(TestSuite.java:203)
>>     at 
>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:325) 
>>
>>     at 
>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:536) 
>>
>>org.apache.jetspeed.exception.JetspeedException: Jetspeed Initialization 
>>exception!
>>     at 
>> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:166)
>>     at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
>>     at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
>>     at junit.framework.TestCase.runBare(TestCase.java:125)
>>     at junit.framework.TestResult$1.protect(TestResult.java:106)
>>     at junit.framework.TestResult.runProtected(TestResult.java:124)
>>     at junit.framework.TestResult.run(TestResult.java:109)
>>     at junit.framework.TestCase.run(TestCase.java:118)
>>     at junit.framework.TestSuite.runTest(TestSuite.java:208)
>>     at junit.framework.TestSuite.run(TestSuite.java:203)
>>     at 
>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:325) 
>>
>>     at 
>> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:536) 
>>
>>Caused by: java.lang.RuntimeException: Failed to initialize prefs api.
>>java.lang.ExceptionInInitializerError
>>     at 
>> org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:114) 
>>
>>     at 
>> org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292) 
>>
>>     at 
>> org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28) 
>>
>>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
>>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
>>     at 
>> org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76) 
>>
>>     at 
>> org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337) 
>>
>>     at 
>> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
>>     ... 11 more
>>------------- ---------------- ---------------
>>Testcase: testEngine(org.apache.jetspeed.engine.TestEngine):    Caused an 
>>ERROR
>>Unable to create Engine
>>org.apache.jetspeed.exception.JetspeedException: Unable to create Engine
>>     at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:70)
>>     at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
>>Caused by: org.apache.jetspeed.exception.JetspeedException: Jetspeed 
>>Initialization exception!
>>     at 
>> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:166)
>>     at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
>>     ... 10 more
>>Caused by: java.lang.RuntimeException: Failed to initialize prefs api.
>>java.lang.ExceptionInInitializerError
>>     at 
>> org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:114) 
>>
>>     at 
>> org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292) 
>>
>>     at 
>> org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28) 
>>
>>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
>>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
>>     at 
>> org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76) 
>>
>>     at 
>> org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337) 
>>
>>     at 
>> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
>>     ... 11 more
>>
>>
>>>>
>>>>Regards,
>>>>   Serge Huber.
>>>>
>>>>At 18:59 21.06.2004, you wrote:
>>>>
>>>>
>>>>>I forgot to mention my environment :
>>>>>
>>>>>- latest J2 from CVS HEAD, including Ate's properties change
>>>>>- Windows XP SP 1
>>>>>- Sun JDK 1.4.2_01
>>>>>- Tomcat 4.1.30
>>>>>
>>>>>My guess about this problem is that as the JVM's Preferences impl uses 
>>>>>the system class loader (see my previous mail), we cannot access the 
>>>>>PreferencesFactoryImpl which is in a child class loader (the webapp's 
>>>>>class loader). Now I would love to be able to propose a workaround, 
>>>>>but since this seems to be a problem with the JDK's implementation and 
>>>>>doesn't offer an alternate way to set a class loader, I'm not sure 
>>>>>there are any options...
>>>>>
>>>>>Anyway, it might also just be my setup. Can somebody reproduce this 
>>>>>problem ?
>>>>>
>>>>>Regards,
>>>>>  Serge Huber.
>>>>>
>>>>>At 18:44 21.06.2004, you wrote:
>>>>>
>>>>>
>>>>>>Scott,
>>>>>>
>>>>>>I did a complete checkout of J2, then :
>>>>>>
>>>>>>allClean
>>>>>>allBuild
>>>>>>quickStart
>>>>>>
>>>>>>and then started Tomcat, here is the log of what happened :
>>>>>>
>>>>>>INFO: Preparing to deploy portlet app "HW_App"
>>>>>>INFO: Deploying portlet applicaion WAR demo.war
>>>>>>INFO: Portlet application deployment target directory is 
>>>>>>C:\java\technologies\jakarta-tomcat\webapps/HW_App
>>>>>>java.lang.InternalError: Can't instantiate Preferences factory 
>>>>>>java.lang.ClassNotFoundException: 
>>>>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>>        at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>>>>>        at 
>>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>>>>>        at 
>>>>>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>>>>>>        at 
>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>>>>>> Source)
>>>>>>        at 
>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>>>>>> Source)
>>>>>>        at 
>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un 
>>>>>> known Source)
>>>>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>>>>>> Source)
>>>>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>>>>>> Source)
>>>>>>        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>>>>>        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
>>>>>> Source)
>>>>>>        at org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>>>>>        at 
>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
>>>>>>        at 
>>>>>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88) 
>>>>>>
>>>>>>ERROR: Unable to register portlet application, HW_App, through the 
>>>>>>portlet registry: 
>>>>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could not
>>>>>>unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
>>>>>>Preferences factory java.lang.ClassNotFoundException: 
>>>>>>org.apache.jetspeed.prefs.impl.Preferenc
>>>>>>esFactoryImpl
>>>>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>>>Could not unmarshal portlet.xml. java.lang.InternalError: Can't 
>>>>>>instantiate Preferences factory
>>>>>>java.lang.ClassNotFoundException: 
>>>>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>>        at 
>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
>>>>>>        at 
>>>>>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88) 
>>>>>>
>>>>>>Caused by: java.lang.InternalError: Can't instantiate Preferences 
>>>>>>factory java.lang.ClassNotFoundException: 
>>>>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
>>>>>>l
>>>>>>        at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>>>>>        at 
>>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>>>>>        at 
>>>>>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>>>>>>        at 
>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>>>>>> Source)
>>>>>>        at 
>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>>>>>> Source)
>>>>>>        at 
>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un 
>>>>>> known Source)
>>>>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>>>>>> Source)
>>>>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>>>>>> Source)
>>>>>>        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>>>>>        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
>>>>>> Source)
>>>>>>        at org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>>>>>        at 
>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
>>>>>>
>>>>>>        ... 9 more
>>>>>>ERROR: Unexpected exception deploying portlet application: 
>>>>>>org.apache.jetspeed.components.portletregistry.RegistryException: 
>>>>>>Unable to register portlet applicat
>>>>>>ion, HW_App, through the portlet registry: 
>>>>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>>>Could not unmarshal portlet.xml. java.lang.InternalE
>>>>>>rror: Can't instantiate Preferences factory 
>>>>>>java.lang.ClassNotFoundException: 
>>>>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl attempting rollback...
>>>>>>org.apache.jetspeed.components.portletregistry.RegistryException: 
>>>>>>Unable to register portlet application, HW_App, through the portlet 
>>>>>>registry: org.apache.jetsp
>>>>>>eed.tools.pamanager.PortletApplicationException: Could not unmarshal 
>>>>>>portlet.xml. java.lang.InternalError: Can't instantiate Preferences 
>>>>>>factory java.lang.Class
>>>>>>NotFoundException: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>>        at 
>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
>>>>>>        at 
>>>>>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88) 
>>>>>>
>>>>>>Caused by: 
>>>>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>>>Could not unmarshal portlet.xml. java.lang.InternalError: Can't 
>>>>>>instantiate Preferen
>>>>>>ces factory java.lang.ClassNotFoundException: 
>>>>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>>        at 
>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
>>>>>>
>>>>>>        ... 7 more
>>>>>>Caused by: java.lang.InternalError: Can't instantiate Preferences 
>>>>>>factory java.lang.ClassNotFoundException: 
>>>>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
>>>>>>l
>>>>>>        at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>>>>>        at 
>>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>>>>>        at 
>>>>>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>>>>>>        at 
>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>>>>>> Source)
>>>>>>        at 
>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>>>>>> Source)
>>>>>>        at 
>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un 
>>>>>> known Source)
>>>>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>>>>>> Source)
>>>>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>>>>>> Source)
>>>>>>        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>>>>>        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
>>>>>> Source)
>>>>>>        at org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>>>>>        at 
>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
>>>>>>
>>>>>>        ... 9 more
>>>>>>INFO: Exception in deploy. Rollback of application deployment...
>>>>>>INFO: Rollback: Remove 
>>>>>>C:\java\technologies\jakarta-tomcat\webapps/HW_App and all sub-directories.
>>>>>>ERROR: org.apache.jetspeed.deployment.DeploymentException: Error 
>>>>>>deploying portlet app: 
>>>>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: org.apa
>>>>>>che.jetspeed.components.portletregistry.RegistryException: Unable to 
>>>>>>register portlet application, HW_App, through the portlet registry: 
>>>>>>org.apache.jetspeed.too
>>>>>>ls.pamanager.PortletApplicationException: Could not unmarshal 
>>>>>>portlet.xml. java.lang.InternalError: Can't instantiate Preferences 
>>>>>>factory java.lang.ClassNotFoun
>>>>>>dException: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>>org.apache.jetspeed.deployment.DeploymentException: Error deploying 
>>>>>>portlet app: 
>>>>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: org.apache.jet
>>>>>>speed.components.portletregistry.RegistryException: Unable to 
>>>>>>register portlet application, HW_App, through the portlet registry: 
>>>>>>org.apache.jetspeed.tools.pama
>>>>>>nager.PortletApplicationException: Could not unmarshal portlet.xml. 
>>>>>>java.lang.InternalError: Can't instantiate Preferences factory 
>>>>>>java.lang.ClassNotFoundExcept
>>>>>>ion: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>>        at 
>>>>>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:128) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88) 
>>>>>>
>>>>>>Caused by: 
>>>>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>>>org.apache.jetspeed.components.portletregistry.RegistryException: 
>>>>>>Unable to register
>>>>>>portlet application, HW_App, through the portlet registry: 
>>>>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>>>Could not unmarshal portlet.xml. ja
>>>>>>va.lang.InternalError: Can't instantiate Preferences factory 
>>>>>>java.lang.ClassNotFoundException: 
>>>>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>>        at 
>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:319) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
>>>>>>        at 
>>>>>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114) 
>>>>>>
>>>>>>        ... 3 more
>>>>>>Caused by: 
>>>>>>org.apache.jetspeed.components.portletregistry.RegistryException: 
>>>>>>Unable to register portlet application, HW_App, through the portlet 
>>>>>>registry: org.a
>>>>>>pache.jetspeed.tools.pamanager.PortletApplicationException: Could not 
>>>>>>unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
>>>>>>Preferences factory java
>>>>>>.lang.ClassNotFoundException: 
>>>>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>>        at 
>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
>>>>>>
>>>>>>        ... 6 more
>>>>>>Caused by: 
>>>>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>>>Could not unmarshal portlet.xml. java.lang.InternalError: Can't 
>>>>>>instantiate Preferen
>>>>>>ces factory java.lang.ClassNotFoundException: 
>>>>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>>        at 
>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
>>>>>>
>>>>>>        ... 7 more
>>>>>>Caused by: java.lang.InternalError: Can't instantiate Preferences 
>>>>>>factory java.lang.ClassNotFoundException: 
>>>>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
>>>>>>l
>>>>>>        at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>>>>>        at 
>>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
>>>>>>
>>>>>>        at 
>>>>>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>>>>>        at 
>>>>>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>>>>>>        at 
>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>>>>>> Source)
>>>>>>        at 
>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>>>>>> Source)
>>>>>>        at 
>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Un 
>>>>>> known Source)
>>>>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>>>>>> Source)
>>>>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>>>>>> Source)
>>>>>>        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>>>>>        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
>>>>>> Source)
>>>>>>        at org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>>>>>        at 
>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
>>>>>>
>>>>>>        ... 9 more
>>>>>>INFO: Loading portlet application from web archive 
>>>>>>C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\jetspeed-layouts.war 
>>>>>>
>>>>>>INFO: Preparing to deploy portlet app "jetspeed"
>>>>>>INFO: jetspeed-layouts.war will be registered as a local portlet 
>>>>>>applicaiton.
>>>>>>INFO: Portlet application deployment target directory is 
>>>>>>jetspeed/jetspeed
>>>>>>INFO: Did not load exteneded metadata as it most likely does not 
>>>>>>exist.  org.apache.commons.vfs.FileSystemException: Could not read 
>>>>>>from "jar:file://C:/java/te
>>>>>>chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/jetspeed-portlet.xml" 
>>>>>>because it is a not a file.
>>>>>>INFO: Loading web.xml into memory....
>>>>>>INFO: Saving the portlet.xml in the registry...
>>>>>>INFO: Committing registry changes...
>>>>>>INFO: FileSystem deployment done.
>>>>>>INFO: Adding 
>>>>>>jar:file://C:/java/technologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/classes 
>>>>>>
>>>>>>to class path.
>>>>>>INFO: Portlet app "jetspeed" successfuly deployed.
>>>>>>INFO: Loading portlet application from web archive 
>>>>>>C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\pam.war
>>>>>>INFO: Preparing to deploy portlet app "pam"
>>>>>>INFO: Deploying portlet applicaion WAR pam.war
>>>>>>INFO: Portlet application deployment target directory is 
>>>>>>C:\java\technologies\jakarta-tomcat\webapps/pam
>>>>>>Writing out infused web.xml for pam
>>>>>>INFO: Loading web.xml into memory....
>>>>>>INFO: Saving the portlet.xml in the registry...
>>>>>>INFO: Committing registry changes...
>>>>>>INFO: FileSystem deployment done.
>>>>>>INFO: Catalina deployment response: OK - Application installTe pour 
>>>>>>le chemin de contexte /pam
>>>>>>
>>>>>>INFO: Portlet app "pam" successfuly deployed.
>>>>>>INFO: Loading portlet application from web archive 
>>>>>>C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\security.war 
>>>>>>
>>>>>>INFO: Preparing to deploy portlet app "security"
>>>>>>INFO: Deploying portlet applicaion WAR security.war
>>>>>>INFO: Portlet application deployment target directory is 
>>>>>>C:\java\technologies\jakarta-tomcat\webapps/security
>>>>>>Writing out infused web.xml for security
>>>>>>INFO: Loading web.xml into memory....
>>>>>>INFO: Saving the portlet.xml in the registry...
>>>>>>INFO: Committing registry changes...
>>>>>>INFO: FileSystem deployment done.
>>>>>>INFO: Catalina deployment response: OK - Application installTe pour 
>>>>>>le chemin de contexte /security
>>>>>>
>>>>>>INFO: Portlet app "security" successfuly deployed.
>>>>>>INFO: Loading portlet application from web archive 
>>>>>>C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\struts-demo.war 
>>>>>>
>>>>>>INFO: Preparing to deploy portlet app "struts-demo"
>>>>>>INFO: Deploying portlet applicaion WAR struts-demo.war
>>>>>>INFO: Portlet application deployment target directory is 
>>>>>>C:\java\technologies\jakarta-tomcat\webapps/struts-demo
>>>>>>Writing out infused web.xml for struts-demo
>>>>>>INFO: Did not load exteneded metadata as it most likely does not 
>>>>>>exist.  org.apache.commons.vfs.FileSystemException: Could not read 
>>>>>>from "jar:file://C:/java/te
>>>>>>chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/struts-demo.war!/WEB-INF/jetspeed-portlet.xml" 
>>>>>>because it is a not a file.
>>>>>>INFO: Loading web.xml into memory....
>>>>>>INFO: Saving the portlet.xml in the registry...
>>>>>>INFO: Committing registry changes...
>>>>>>INFO: FileSystem deployment done.
>>>>>>INFO: Catalina deployment response: OK - Application installTe pour 
>>>>>>le chemin de contexte /struts-demo
>>>>>>
>>>>>>INFO: Portlet app "struts-demo" successfuly deployed.
>>>>>>
>>>>>>So it seems that even within the J2 webapp there is a problem with 
>>>>>>the class loading of the preference factory. What is strange is that 
>>>>>>some PAs deployed, but I guess they don't use any preferences ?
>>>>>>
>>>>>>Regards,
>>>>>>  Serge Huber.
>>>>>>
>>>>>>At 16:43 21.06.2004, you wrote:
>>>>>>
>>>>>>
>>>>>>>Hi Scott,
>>>>>>>
>>>>>>>Actually I'm calling the FileSystemPAM from my own deployer, within 
>>>>>>>Jahia. Maybe I'm missing something in my deployment ? I have the 
>>>>>>>jetspeed-prefs*.jar in the WEB-INF/lib directory, along with all of 
>>>>>>>J2, and I updated the assembly script a few hours ago.
>>>>>>>
>>>>>>>I didn't test with auto-deploy, but I could to see if it works better.
>>>>>>>
>>>>>>>Regards,
>>>>>>>  Serge...
>>>>>>>
>>>>>>>At 16:31 21.06.2004, you wrote:
>>>>>>>
>>>>>>>>Hi Serge,
>>>>>>>>
>>>>>>>>
>>>>>>>>Is this exception coming from auto-deployment?  Because I am not having
>>>>>>>>any issues with deployment.  I made PreferenceProviderImpl Startable so
>>>>>>>>this wouldn't happen, maybe this doesn't address all possible scenarios
>>>>>>>>though.
>>>>>>>>
>>>>>>>>
>>>>>>>>On Mon, 2004-06-21 at 10:23, Serge Huber wrote:
>>>>>>>>
>>>>>>>>>Hi,
>>>>>>>>>
>>>>>>>>>I'm having some problem using the FileSystemPAM from within a web app
>>>>>>>>>context (seems to work in the tests, which use the system class 
>>>>>>>>>loader).
>>>>>>>>>
>>>>>>>>>Basically I get the following exception :
>>>>>>>>>
>>>>>>>>>java.lang.InternalError: Can't instantiate Preferences factory
>>>>>>>>>java.lang.ClassNotFoundException:
>>>>>>>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>>>>>
>>>>>>>>>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>>>>>>>>         at
>>>>>>>>
>>>>>>>>org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
>>>>>>>>
>>>>>>>>
>>>>>>>>>         at
>>>>>>>>
>>>>>>>>org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
>>>>>>>>
>>>>>>>>
>>>>>>>>>         at
>>>>>>>>
>>>>>>>>org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
>>>>>>>>
>>>>>>>>
>>>>>>>>>         at
>>>>>>>>
>>>>>>>>
>>>>>>>>org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>>>>>>>
>>>>>>>>>         at
>>>>>>>>
>>>>>>>>
>>>>>>>>org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
>>>>>>>>
>>>>>>>>>Source)
>>>>>>>>>         at
>>>>>>>>
>>>>>>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>>>>>>>>
>>>>>>>>
>>>>>>>>>Source)
>>>>>>>>>         at
>>>>>>>>
>>>>>>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>>>>>>>>
>>>>>>>>
>>>>>>>>>Source)
>>>>>>>>>         at
>>>>>>>>
>>>>>>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
>>>>>>>>
>>>>>>>>
>>>>>>>>>Source)
>>>>>>>>>         at
>>>>>>>>
>>>>>>>>
>>>>>>>>org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>>>>>>>>
>>>>>>>>>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
>>>>>>>>
>>>>>>>>
>>>>>>>>Source)
>>>>>>>>
>>>>>>>>>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>>>>>>>>         at
>>>>>>>>
>>>>>>>>
>>>>>>>>org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>>>>>>>>
>>>>>>>>>         at
>>>>>>>>
>>>>>>>>
>>>>>>>>org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>>>>>>>
>>>>>>>>>         at
>>>>>>>>
>>>>>>>>org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
>>>>>>>>
>>>>>>>>
>>>>>>>>>         at
>>>>>>>>
>>>>>>>>org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
>>>>>>>>
>>>>>>>>
>>>>>>>>>         at
>>>>>>>>
>>>>>>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
>>>>>>>>
>>>>>>>>
>>>>>>>>>         at
>>>>>>>>
>>>>>>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
>>>>>>>>
>>>>>>>>
>>>>>>>>>         at
>>>>>>>>
>>>>>>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
>>>>>>>>
>>>>>>>>
>>>>>>>>>I looked at the JDK's source and found the following code when
>>>>>>>>
>>>>>>>>
>>>>>>>>loading the
>>>>>>>>
>>>>>>>>>PreferenceFactory implementation :
>>>>>>>>>
>>>>>>>>>             factory = (PreferencesFactory)
>>>>>>>>>                Class.forName(factoryName, false,
>>>>>>>>>ClassLoader.getSystemClassLoader()).newInstance();
>>>>>>>>>
>>>>>>>>>If this means what I think it does, the preference factory may only be
>>>>>>>>>loaded from the root class loader, which means that we would need to
>>>>>>>>
>>>>>>>>
>>>>>>>>deploy
>>>>>>>>
>>>>>>>>>the jetspeed-prefs*.jar into Tomcat's classpath or something.
>>>>>>>>>
>>>>>>>>>Is this analysis correct ? If so, how to we get around this ?
>>>>>>>>>
>>>>>>>>>Regards,
>>>>>>>>>   Serge Huber.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>>>>>>>>www.jahia.org : A collaborative source CMS and Portal Server
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>---------------------------------------------------------------------
>>>>>>>>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>>>>>>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>>>>>>>
>>>>>>>>
>>>>>>>>Regards,
>>>>>>>>--
>>>>>>>>******************************************
>>>>>>>>*           Scott T. Weaver              *
>>>>>>>>*         <we...@apache.org>            *
>>>>>>>>*     <http://www.einnovation.com>       *
>>>>>>>>* -------------------------------------- *
>>>>>>>>*   Apache Jetspeed Enterprise Portal    *
>>>>>>>>*     Apache Pluto Portlet Container     *
>>>>>>>>*                                        *
>>>>>>>>* OpenEditPro, Website Content Mangement *
>>>>>>>>*     <http://www.openeditpro.com>       *
>>>>>>>>******************************************
>>>>>>>>
>>>>>>>>
>>>>>>>>---------------------------------------------------------------------
>>>>>>>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>>>>>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>>>>>>
>>>>>>>
>>>>>>>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>>>>>>www.jahia.org : A collaborative source CMS and Portal Server
>>>>>>>
>>>>>>>
>>>>>>>---------------------------------------------------------------------
>>>>>>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>>>>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>>>>>
>>>>>>
>>>>>>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>>>>>www.jahia.org : A collaborative source CMS and Portal Server
>>>>>>
>>>>>>
>>>>>>---------------------------------------------------------------------
>>>>>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>>>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>>>>
>>>>>
>>>>>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>>>>www.jahia.org : A collaborative source CMS and Portal Server
>>>>>
>>>>>
>>>>>---------------------------------------------------------------------
>>>>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>>>
>>>>
>>>>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>>>www.jahia.org : A collaborative source CMS and Portal Server
>>>>
>>>>
>>>>---------------------------------------------------------------------
>>>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>>
>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>>
>>>
>>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org

- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
www.jahia.org : A collaborative source CMS and Portal Server 



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org


Re: [J2] Using FileSystem PAM from web app class loader

Posted by David Sean Taylor <da...@bluesunrise.com>.
On Jun 21, 2004, at 12:59 PM, Ate Douma wrote:

> Updated again and now it works!
> Great job. Seems we are up and running again on cvs head.
>
Just did a fresh checkout, all goes well


---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org


Re: [J2] Using FileSystem PAM from web app class loader

Posted by Ate Douma <at...@douma.nu>.
Updated again and now it works!
Great job. Seems we are up and running again on cvs head.

I don't know how it is with jdk < 1.4.2_02 though. Serge?

Ate Douma wrote:

> 
> 
> Scott T Weaver wrote:
> 
>> On Mon, 2004-06-21 at 13:46, Serge Huber wrote:
>>
>>> Found my problem !!
>>>
>>> It's amazing, but it actually explains why the problem was not 
>>> happening to everybody. It's a problem that only exists with JDK 
>>> 1.4.2_01 and earlier. It seems that in JDK 1.4.2_02 the 
>>> implementation of classloading for the factory has changed. Before 
>>> _02 they used the System class loader, whereas in _02 and later if 
>>> the class is not found in the system class loader, it then tries in 
>>> the Thread class loader.
>>
>>
>>
>> I am using 1.4.2_04-b05 on Mandrake Linux and have the same problem you
>> and Ate were having.  Hmm, maybe they forgot to fix the Linux dist!
>>
>>
>>> For more details go to :
>>>
>>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4788410
>>>
>>> To confirm I upgraded to JDK 1.4.2_04 and I now have the preference 
>>> factory loading fine.
>>>
>>> Now this begs the question : do we want J2 to require JDK 1.4.2_02 or 
>>> later or do we need to change the pref api implementation to be more 
>>> portable ?
> 
> As I reported I had the problem with JDK 1.4.2_04 so it seems
> it is *not* fixed from 1.4.2_4.
> 
> I did a quick update to get Scotts fix and tried to build again.
> Now I get a test failure in o.a.j.engine.TestEngine.
> I'm sorry but I have a meeting now so I can't help out for the next few 
> hours...
> 
> TEST-org.apache.jetspeed.engine.TestEngine.txt:
> 
> Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 2.484 sec
> 
> ------------- Standard Output ---------------
>  INFO: Jetspeed environment attempting to initialize portal Engine...
> JNDI System Property flag null
> cn=org.nanocontainer.script.groovy.GroovyContainerBuilder
> [org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl] ERROR: 
> Naming Exception while looking up DataSource (java:comp/env/jdbc/jetspeed)
> comp is not a subcontext
> [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR: 
> PersistenceBrokerException during the execution of the query: Used 
> ConnectionManager instance could not obtain a connection
> Used ConnectionManager instance could not obtain a connection
> ------------- ---------------- ---------------
> ------------- Standard Error -----------------
> javax.naming.NotContextException: comp is not a subcontext
>     at tyrex.naming.EnvContext.internalLookup(Unknown Source)
>     at tyrex.naming.EnvContext.lookup(Unknown Source)
>     at tyrex.naming.java.JavaContext.lookup(Unknown Source)
>     at javax.naming.InitialContext.lookup(InitialContext.java:347)
>     at 
> org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.newConnectionFromDataSource(Unknown 
> Source)
>     at 
> org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.lookupConnection(Unknown 
> Source)
>     at 
> org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.getConnection(Unknown 
> Source)
>     at 
> org.apache.ojb.broker.accesslayer.StatementManager.getPreparedStatement(Unknown 
> Source)
>     at 
> org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(Unknown 
> Source)
>     at 
> org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(Unknown 
> Source)
>     at org.apache.ojb.broker.accesslayer.RsIterator.<init>(Unknown Source)
>     at 
> org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(Unknown 
> Source)
>     at 
> org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(Unknown 
> Source)
>     at 
> org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(Unknown 
> Source)
>     at 
> org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Unknown 
> Source)
>     at 
> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown 
> Source)
>     at 
> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown 
> Source)
>     at 
> org.apache.jetspeed.components.persistence.store.ojb.pb.PBStore.getObjectByQuery(PBStore.java:224) 
> 
>     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)
>     at 
> org.picocontainer.defaults.ImplementationHidingComponentAdapter$DelegatingInvocationHandler.invoke(ImplementationHidingComponentAdapter.java:92) 
> 
>     at $Proxy0.getObjectByQuery(Unknown Source)
>     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)
>     at 
> org.apache.jetspeed.components.adapters.AbstractDelegationStrategy.invoke(AbstractDelegationStrategy.java:66) 
> 
>     at $Proxy0.getObjectByQuery(Unknown Source)
>     at 
> org.apache.jetspeed.prefs.impl.PreferencesImpl.getNode(PreferencesImpl.java:228) 
> 
>     at 
> org.apache.jetspeed.prefs.impl.PreferencesImpl.createPrefNode(PreferencesImpl.java:164) 
> 
>     at 
> org.apache.jetspeed.prefs.impl.PreferencesImpl.<init>(PreferencesImpl.java:113) 
> 
>     at 
> org.apache.jetspeed.prefs.impl.PreferencesImpl.<clinit>(PreferencesImpl.java:90) 
> 
>     at 
> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl.systemRoot(PreferencesFactoryImpl.java:37) 
> 
>     at 
> org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:108) 
> 
>     at 
> org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292) 
> 
>     at 
> org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28) 
> 
>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
>     at 
> org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76) 
> 
>     at 
> org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337) 
> 
>     at 
> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
>     at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
>     at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
>     at junit.framework.TestCase.runBare(TestCase.java:125)
>     at junit.framework.TestResult$1.protect(TestResult.java:106)
>     at junit.framework.TestResult.runProtected(TestResult.java:124)
>     at junit.framework.TestResult.run(TestResult.java:109)
>     at junit.framework.TestCase.run(TestCase.java:118)
>     at junit.framework.TestSuite.runTest(TestSuite.java:208)
>     at junit.framework.TestSuite.run(TestSuite.java:203)
>     at 
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:325) 
> 
>     at 
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:536) 
> 
> org.apache.ojb.broker.PersistenceBrokerException: Used ConnectionManager 
> instance could not obtain a connection
>     at 
> org.apache.ojb.broker.accesslayer.StatementManager.getPreparedStatement(Unknown 
> Source)
>     at 
> org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(Unknown 
> Source)
>     at 
> org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(Unknown 
> Source)
>     at org.apache.ojb.broker.accesslayer.RsIterator.<init>(Unknown Source)
>     at 
> org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(Unknown 
> Source)
>     at 
> org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(Unknown 
> Source)
>     at 
> org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(Unknown 
> Source)
>     at 
> org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Unknown 
> Source)
>     at 
> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown 
> Source)
>     at 
> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown 
> Source)
>     at 
> org.apache.jetspeed.components.persistence.store.ojb.pb.PBStore.getObjectByQuery(PBStore.java:224) 
> 
>     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)
>     at 
> org.picocontainer.defaults.ImplementationHidingComponentAdapter$DelegatingInvocationHandler.invoke(ImplementationHidingComponentAdapter.java:92) 
> 
>     at $Proxy0.getObjectByQuery(Unknown Source)
>     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)
>     at 
> org.apache.jetspeed.components.adapters.AbstractDelegationStrategy.invoke(AbstractDelegationStrategy.java:66) 
> 
>     at $Proxy0.getObjectByQuery(Unknown Source)
>     at 
> org.apache.jetspeed.prefs.impl.PreferencesImpl.getNode(PreferencesImpl.java:228) 
> 
>     at 
> org.apache.jetspeed.prefs.impl.PreferencesImpl.createPrefNode(PreferencesImpl.java:164) 
> 
>     at 
> org.apache.jetspeed.prefs.impl.PreferencesImpl.<init>(PreferencesImpl.java:113) 
> 
>     at 
> org.apache.jetspeed.prefs.impl.PreferencesImpl.<clinit>(PreferencesImpl.java:90) 
> 
>     at 
> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl.systemRoot(PreferencesFactoryImpl.java:37) 
> 
>     at 
> org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:108) 
> 
>     at 
> org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292) 
> 
>     at 
> org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28) 
> 
>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
>     at 
> org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76) 
> 
>     at 
> org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337) 
> 
>     at 
> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
>     at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
>     at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
>     at junit.framework.TestCase.runBare(TestCase.java:125)
>     at junit.framework.TestResult$1.protect(TestResult.java:106)
>     at junit.framework.TestResult.runProtected(TestResult.java:124)
>     at junit.framework.TestResult.run(TestResult.java:109)
>     at junit.framework.TestCase.run(TestCase.java:118)
>     at junit.framework.TestSuite.runTest(TestSuite.java:208)
>     at junit.framework.TestSuite.run(TestSuite.java:203)
>     at 
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:325) 
> 
>     at 
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:536) 
> 
> Caused by: org.apache.ojb.broker.accesslayer.LookupException: Naming 
> Exception while looking up DataSource (java:comp/env/jdbc/jetspeed)
>     at 
> org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.newConnectionFromDataSource(Unknown 
> Source)
>     at 
> org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.lookupConnection(Unknown 
> Source)
>     at 
> org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.getConnection(Unknown 
> Source)
>     ... 47 more
> Caused by: javax.naming.NotContextException: comp is not a subcontext
>     at tyrex.naming.EnvContext.internalLookup(Unknown Source)
>     at tyrex.naming.EnvContext.lookup(Unknown Source)
>     at tyrex.naming.java.JavaContext.lookup(Unknown Source)
>     at javax.naming.InitialContext.lookup(InitialContext.java:347)
>     ... 50 more
> java.lang.RuntimeException: Failed to initialize prefs api.  
> java.lang.ExceptionInInitializerError
>     at 
> org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:114) 
> 
>     at 
> org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292) 
> 
>     at 
> org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28) 
> 
>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
>     at 
> org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76) 
> 
>     at 
> org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337) 
> 
>     at 
> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
>     at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
>     at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
>     at junit.framework.TestCase.runBare(TestCase.java:125)
>     at junit.framework.TestResult$1.protect(TestResult.java:106)
>     at junit.framework.TestResult.runProtected(TestResult.java:124)
>     at junit.framework.TestResult.run(TestResult.java:109)
>     at junit.framework.TestCase.run(TestCase.java:118)
>     at junit.framework.TestSuite.runTest(TestSuite.java:208)
>     at junit.framework.TestSuite.run(TestSuite.java:203)
>     at 
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:325) 
> 
>     at 
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:536) 
> 
> org.apache.jetspeed.exception.JetspeedException: Jetspeed Initialization 
> exception!
>     at 
> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:166)
>     at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
>     at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
>     at junit.framework.TestCase.runBare(TestCase.java:125)
>     at junit.framework.TestResult$1.protect(TestResult.java:106)
>     at junit.framework.TestResult.runProtected(TestResult.java:124)
>     at junit.framework.TestResult.run(TestResult.java:109)
>     at junit.framework.TestCase.run(TestCase.java:118)
>     at junit.framework.TestSuite.runTest(TestSuite.java:208)
>     at junit.framework.TestSuite.run(TestSuite.java:203)
>     at 
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:325) 
> 
>     at 
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:536) 
> 
> Caused by: java.lang.RuntimeException: Failed to initialize prefs api.  
> java.lang.ExceptionInInitializerError
>     at 
> org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:114) 
> 
>     at 
> org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292) 
> 
>     at 
> org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28) 
> 
>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
>     at 
> org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76) 
> 
>     at 
> org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337) 
> 
>     at 
> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
>     ... 11 more
> ------------- ---------------- ---------------
> Testcase: testEngine(org.apache.jetspeed.engine.TestEngine):    Caused 
> an ERROR
> Unable to create Engine
> org.apache.jetspeed.exception.JetspeedException: Unable to create Engine
>     at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:70)
>     at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
> Caused by: org.apache.jetspeed.exception.JetspeedException: Jetspeed 
> Initialization exception!
>     at 
> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:166)
>     at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
>     ... 10 more
> Caused by: java.lang.RuntimeException: Failed to initialize prefs api.  
> java.lang.ExceptionInInitializerError
>     at 
> org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:114) 
> 
>     at 
> org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292) 
> 
>     at 
> org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28) 
> 
>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
>     at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
>     at 
> org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76) 
> 
>     at 
> org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337) 
> 
>     at 
> org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
>     ... 11 more
> 
> 
> 
>>>
>>> Regards,
>>>   Serge Huber.
>>>
>>> At 18:59 21.06.2004, you wrote:
>>>
>>>
>>>> I forgot to mention my environment :
>>>>
>>>> - latest J2 from CVS HEAD, including Ate's properties change
>>>> - Windows XP SP 1
>>>> - Sun JDK 1.4.2_01
>>>> - Tomcat 4.1.30
>>>>
>>>> My guess about this problem is that as the JVM's Preferences impl 
>>>> uses the system class loader (see my previous mail), we cannot 
>>>> access the PreferencesFactoryImpl which is in a child class loader 
>>>> (the webapp's class loader). Now I would love to be able to propose 
>>>> a workaround, but since this seems to be a problem with the JDK's 
>>>> implementation and doesn't offer an alternate way to set a class 
>>>> loader, I'm not sure there are any options...
>>>>
>>>> Anyway, it might also just be my setup. Can somebody reproduce this 
>>>> problem ?
>>>>
>>>> Regards,
>>>>  Serge Huber.
>>>>
>>>> At 18:44 21.06.2004, you wrote:
>>>>
>>>>
>>>>> Scott,
>>>>>
>>>>> I did a complete checkout of J2, then :
>>>>>
>>>>> allClean
>>>>> allBuild
>>>>> quickStart
>>>>>
>>>>> and then started Tomcat, here is the log of what happened :
>>>>>
>>>>> INFO: Preparing to deploy portlet app "HW_App"
>>>>> INFO: Deploying portlet applicaion WAR demo.war
>>>>> INFO: Portlet application deployment target directory is 
>>>>> C:\java\technologies\jakarta-tomcat\webapps/HW_App
>>>>> java.lang.InternalError: Can't instantiate Preferences factory 
>>>>> java.lang.ClassNotFoundException: 
>>>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>        at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>>>>        at 
>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
>>>>>
>>>>>        at 
>>>>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>>>>        at 
>>>>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>>>>>        at 
>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>>>>> Source)
>>>>>        at 
>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>>>>> Source)
>>>>>        at 
>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
>>>>> Source)
>>>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>>>>> Source)
>>>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>>>>> Source)
>>>>>        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>>>>        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
>>>>> Source)
>>>>>        at 
>>>>> org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>>>>        at 
>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88) 
>>>>>
>>>>> ERROR: Unable to register portlet application, HW_App, through the 
>>>>> portlet registry: 
>>>>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>> Could not
>>>>> unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
>>>>> Preferences factory java.lang.ClassNotFoundException: 
>>>>> org.apache.jetspeed.prefs.impl.Preferenc
>>>>> esFactoryImpl
>>>>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>> Could not unmarshal portlet.xml. java.lang.InternalError: Can't 
>>>>> instantiate Preferences factory
>>>>> java.lang.ClassNotFoundException: 
>>>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>        at 
>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88) 
>>>>>
>>>>> Caused by: java.lang.InternalError: Can't instantiate Preferences 
>>>>> factory java.lang.ClassNotFoundException: 
>>>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
>>>>> l
>>>>>        at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>>>>        at 
>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
>>>>>
>>>>>        at 
>>>>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>>>>        at 
>>>>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>>>>>        at 
>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>>>>> Source)
>>>>>        at 
>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>>>>> Source)
>>>>>        at 
>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
>>>>> Source)
>>>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>>>>> Source)
>>>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>>>>> Source)
>>>>>        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>>>>        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
>>>>> Source)
>>>>>        at 
>>>>> org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>>>>        at 
>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
>>>>>
>>>>>        ... 9 more
>>>>> ERROR: Unexpected exception deploying portlet application: 
>>>>> org.apache.jetspeed.components.portletregistry.RegistryException: 
>>>>> Unable to register portlet applicat
>>>>> ion, HW_App, through the portlet registry: 
>>>>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>> Could not unmarshal portlet.xml. java.lang.InternalE
>>>>> rror: Can't instantiate Preferences factory 
>>>>> java.lang.ClassNotFoundException: 
>>>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl attempting 
>>>>> rollback...
>>>>> org.apache.jetspeed.components.portletregistry.RegistryException: 
>>>>> Unable to register portlet application, HW_App, through the portlet 
>>>>> registry: org.apache.jetsp
>>>>> eed.tools.pamanager.PortletApplicationException: Could not 
>>>>> unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
>>>>> Preferences factory java.lang.Class
>>>>> NotFoundException: 
>>>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>        at 
>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88) 
>>>>>
>>>>> Caused by: 
>>>>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>> Could not unmarshal portlet.xml. java.lang.InternalError: Can't 
>>>>> instantiate Preferen
>>>>> ces factory java.lang.ClassNotFoundException: 
>>>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>        at 
>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
>>>>>
>>>>>        ... 7 more
>>>>> Caused by: java.lang.InternalError: Can't instantiate Preferences 
>>>>> factory java.lang.ClassNotFoundException: 
>>>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
>>>>> l
>>>>>        at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>>>>        at 
>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
>>>>>
>>>>>        at 
>>>>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>>>>        at 
>>>>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>>>>>        at 
>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>>>>> Source)
>>>>>        at 
>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>>>>> Source)
>>>>>        at 
>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
>>>>> Source)
>>>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>>>>> Source)
>>>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>>>>> Source)
>>>>>        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>>>>        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
>>>>> Source)
>>>>>        at 
>>>>> org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>>>>        at 
>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
>>>>>
>>>>>        ... 9 more
>>>>> INFO: Exception in deploy. Rollback of application deployment...
>>>>> INFO: Rollback: Remove 
>>>>> C:\java\technologies\jakarta-tomcat\webapps/HW_App and all 
>>>>> sub-directories.
>>>>> ERROR: org.apache.jetspeed.deployment.DeploymentException: Error 
>>>>> deploying portlet app: 
>>>>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>> org.apa
>>>>> che.jetspeed.components.portletregistry.RegistryException: Unable 
>>>>> to register portlet application, HW_App, through the portlet 
>>>>> registry: org.apache.jetspeed.too
>>>>> ls.pamanager.PortletApplicationException: Could not unmarshal 
>>>>> portlet.xml. java.lang.InternalError: Can't instantiate Preferences 
>>>>> factory java.lang.ClassNotFoun
>>>>> dException: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>> org.apache.jetspeed.deployment.DeploymentException: Error deploying 
>>>>> portlet app: 
>>>>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>> org.apache.jet
>>>>> speed.components.portletregistry.RegistryException: Unable to 
>>>>> register portlet application, HW_App, through the portlet registry: 
>>>>> org.apache.jetspeed.tools.pama
>>>>> nager.PortletApplicationException: Could not unmarshal portlet.xml. 
>>>>> java.lang.InternalError: Can't instantiate Preferences factory 
>>>>> java.lang.ClassNotFoundExcept
>>>>> ion: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>        at 
>>>>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:128) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88) 
>>>>>
>>>>> Caused by: 
>>>>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>> org.apache.jetspeed.components.portletregistry.RegistryException: 
>>>>> Unable to register
>>>>> portlet application, HW_App, through the portlet registry: 
>>>>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>> Could not unmarshal portlet.xml. ja
>>>>> va.lang.InternalError: Can't instantiate Preferences factory 
>>>>> java.lang.ClassNotFoundException: 
>>>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>        at 
>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:319) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114) 
>>>>>
>>>>>        ... 3 more
>>>>> Caused by: 
>>>>> org.apache.jetspeed.components.portletregistry.RegistryException: 
>>>>> Unable to register portlet application, HW_App, through the portlet 
>>>>> registry: org.a
>>>>> pache.jetspeed.tools.pamanager.PortletApplicationException: Could 
>>>>> not unmarshal portlet.xml. java.lang.InternalError: Can't 
>>>>> instantiate Preferences factory java
>>>>> .lang.ClassNotFoundException: 
>>>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>        at 
>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
>>>>>
>>>>>        ... 6 more
>>>>> Caused by: 
>>>>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>> Could not unmarshal portlet.xml. java.lang.InternalError: Can't 
>>>>> instantiate Preferen
>>>>> ces factory java.lang.ClassNotFoundException: 
>>>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>        at 
>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
>>>>>
>>>>>        ... 7 more
>>>>> Caused by: java.lang.InternalError: Can't instantiate Preferences 
>>>>> factory java.lang.ClassNotFoundException: 
>>>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
>>>>> l
>>>>>        at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>>>>        at 
>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
>>>>>
>>>>>        at 
>>>>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
>>>>>
>>>>>        at 
>>>>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>>>>        at 
>>>>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>>>>>        at 
>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>>>>> Source)
>>>>>        at 
>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>>>>> Source)
>>>>>        at 
>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
>>>>> Source)
>>>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>>>>> Source)
>>>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>>>>> Source)
>>>>>        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>>>>        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
>>>>> Source)
>>>>>        at 
>>>>> org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>>>>        at 
>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
>>>>>
>>>>>        ... 9 more
>>>>> INFO: Loading portlet application from web archive 
>>>>> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\jetspeed-layouts.war 
>>>>>
>>>>> INFO: Preparing to deploy portlet app "jetspeed"
>>>>> INFO: jetspeed-layouts.war will be registered as a local portlet 
>>>>> applicaiton.
>>>>> INFO: Portlet application deployment target directory is 
>>>>> jetspeed/jetspeed
>>>>> INFO: Did not load exteneded metadata as it most likely does not 
>>>>> exist.  org.apache.commons.vfs.FileSystemException: Could not read 
>>>>> from "jar:file://C:/java/te
>>>>> chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/jetspeed-portlet.xml" 
>>>>> because it is a not a file.
>>>>> INFO: Loading web.xml into memory....
>>>>> INFO: Saving the portlet.xml in the registry...
>>>>> INFO: Committing registry changes...
>>>>> INFO: FileSystem deployment done.
>>>>> INFO: Adding 
>>>>> jar:file://C:/java/technologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/classes 
>>>>>
>>>>> to class path.
>>>>> INFO: Portlet app "jetspeed" successfuly deployed.
>>>>> INFO: Loading portlet application from web archive 
>>>>> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\pam.war 
>>>>>
>>>>> INFO: Preparing to deploy portlet app "pam"
>>>>> INFO: Deploying portlet applicaion WAR pam.war
>>>>> INFO: Portlet application deployment target directory is 
>>>>> C:\java\technologies\jakarta-tomcat\webapps/pam
>>>>> Writing out infused web.xml for pam
>>>>> INFO: Loading web.xml into memory....
>>>>> INFO: Saving the portlet.xml in the registry...
>>>>> INFO: Committing registry changes...
>>>>> INFO: FileSystem deployment done.
>>>>> INFO: Catalina deployment response: OK - Application installTe pour 
>>>>> le chemin de contexte /pam
>>>>>
>>>>> INFO: Portlet app "pam" successfuly deployed.
>>>>> INFO: Loading portlet application from web archive 
>>>>> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\security.war 
>>>>>
>>>>> INFO: Preparing to deploy portlet app "security"
>>>>> INFO: Deploying portlet applicaion WAR security.war
>>>>> INFO: Portlet application deployment target directory is 
>>>>> C:\java\technologies\jakarta-tomcat\webapps/security
>>>>> Writing out infused web.xml for security
>>>>> INFO: Loading web.xml into memory....
>>>>> INFO: Saving the portlet.xml in the registry...
>>>>> INFO: Committing registry changes...
>>>>> INFO: FileSystem deployment done.
>>>>> INFO: Catalina deployment response: OK - Application installTe pour 
>>>>> le chemin de contexte /security
>>>>>
>>>>> INFO: Portlet app "security" successfuly deployed.
>>>>> INFO: Loading portlet application from web archive 
>>>>> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\struts-demo.war 
>>>>>
>>>>> INFO: Preparing to deploy portlet app "struts-demo"
>>>>> INFO: Deploying portlet applicaion WAR struts-demo.war
>>>>> INFO: Portlet application deployment target directory is 
>>>>> C:\java\technologies\jakarta-tomcat\webapps/struts-demo
>>>>> Writing out infused web.xml for struts-demo
>>>>> INFO: Did not load exteneded metadata as it most likely does not 
>>>>> exist.  org.apache.commons.vfs.FileSystemException: Could not read 
>>>>> from "jar:file://C:/java/te
>>>>> chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/struts-demo.war!/WEB-INF/jetspeed-portlet.xml" 
>>>>> because it is a not a file.
>>>>> INFO: Loading web.xml into memory....
>>>>> INFO: Saving the portlet.xml in the registry...
>>>>> INFO: Committing registry changes...
>>>>> INFO: FileSystem deployment done.
>>>>> INFO: Catalina deployment response: OK - Application installTe pour 
>>>>> le chemin de contexte /struts-demo
>>>>>
>>>>> INFO: Portlet app "struts-demo" successfuly deployed.
>>>>>
>>>>> So it seems that even within the J2 webapp there is a problem with 
>>>>> the class loading of the preference factory. What is strange is 
>>>>> that some PAs deployed, but I guess they don't use any preferences ?
>>>>>
>>>>> Regards,
>>>>>  Serge Huber.
>>>>>
>>>>> At 16:43 21.06.2004, you wrote:
>>>>>
>>>>>
>>>>>> Hi Scott,
>>>>>>
>>>>>> Actually I'm calling the FileSystemPAM from my own deployer, 
>>>>>> within Jahia. Maybe I'm missing something in my deployment ? I 
>>>>>> have the jetspeed-prefs*.jar in the WEB-INF/lib directory, along 
>>>>>> with all of J2, and I updated the assembly script a few hours ago.
>>>>>>
>>>>>> I didn't test with auto-deploy, but I could to see if it works 
>>>>>> better.
>>>>>>
>>>>>> Regards,
>>>>>>  Serge...
>>>>>>
>>>>>> At 16:31 21.06.2004, you wrote:
>>>>>>
>>>>>>> Hi Serge,
>>>>>>>
>>>>>>>
>>>>>>> Is this exception coming from auto-deployment?  Because I am not 
>>>>>>> having
>>>>>>> any issues with deployment.  I made PreferenceProviderImpl 
>>>>>>> Startable so
>>>>>>> this wouldn't happen, maybe this doesn't address all possible 
>>>>>>> scenarios
>>>>>>> though.
>>>>>>>
>>>>>>>
>>>>>>> On Mon, 2004-06-21 at 10:23, Serge Huber wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> I'm having some problem using the FileSystemPAM from within a 
>>>>>>>> web app
>>>>>>>> context (seems to work in the tests, which use the system class 
>>>>>>>> loader).
>>>>>>>>
>>>>>>>> Basically I get the following exception :
>>>>>>>>
>>>>>>>> java.lang.InternalError: Can't instantiate Preferences factory
>>>>>>>> java.lang.ClassNotFoundException:
>>>>>>>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>>>>
>>>>>>>>         at 
>>>>>>>> java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>>>>>>>         at
>>>>>>>>
>>>>>>>
>>>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540) 
>>>>>>>
>>>>>>>
>>>>>>>>         at
>>>>>>>>
>>>>>>>
>>>>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73) 
>>>>>>>
>>>>>>>
>>>>>>>>         at
>>>>>>>>
>>>>>>>
>>>>>>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74) 
>>>>>>>
>>>>>>>
>>>>>>>>         at 
>>>>>>>
>>>>>>>
>>>>>>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>>>>>>
>>>>>>>>         at 
>>>>>>>
>>>>>>>
>>>>>>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
>>>>>>>
>>>>>>>> Source)
>>>>>>>>         at
>>>>>>>>
>>>>>>>
>>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>>>>>>>
>>>>>>>
>>>>>>>> Source)
>>>>>>>>         at
>>>>>>>>
>>>>>>>
>>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>>>>>>>
>>>>>>>
>>>>>>>> Source)
>>>>>>>>         at
>>>>>>>>
>>>>>>>
>>>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
>>>>>>>
>>>>>>>
>>>>>>>> Source)
>>>>>>>>         at 
>>>>>>>
>>>>>>>
>>>>>>> org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>>>>>>>
>>>>>>>>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>>>>>>>
>>>>>>>
>>>>>>> Source)
>>>>>>>
>>>>>>>>         at org.apache.xerces.parsers.XMLParser.parse(Unknown 
>>>>>>>> Source)
>>>>>>>>         at 
>>>>>>>
>>>>>>>
>>>>>>> org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>>>>>>>
>>>>>>>>         at 
>>>>>>>
>>>>>>>
>>>>>>> org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>>>>>>
>>>>>>>>         at
>>>>>>>>
>>>>>>>
>>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146) 
>>>>>>>
>>>>>>>
>>>>>>>>         at
>>>>>>>>
>>>>>>>
>>>>>>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213) 
>>>>>>>
>>>>>>>
>>>>>>>>         at
>>>>>>>>
>>>>>>>
>>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346) 
>>>>>>>
>>>>>>>
>>>>>>>>         at
>>>>>>>>
>>>>>>>
>>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297) 
>>>>>>>
>>>>>>>
>>>>>>>>         at
>>>>>>>>
>>>>>>>
>>>>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89) 
>>>>>>>
>>>>>>>
>>>>>>>> I looked at the JDK's source and found the following code when 
>>>>>>>
>>>>>>>
>>>>>>> loading the
>>>>>>>
>>>>>>>> PreferenceFactory implementation :
>>>>>>>>
>>>>>>>>             factory = (PreferencesFactory)
>>>>>>>>                Class.forName(factoryName, false,
>>>>>>>> ClassLoader.getSystemClassLoader()).newInstance();
>>>>>>>>
>>>>>>>> If this means what I think it does, the preference factory may 
>>>>>>>> only be
>>>>>>>> loaded from the root class loader, which means that we would 
>>>>>>>> need to 
>>>>>>>
>>>>>>>
>>>>>>> deploy
>>>>>>>
>>>>>>>> the jetspeed-prefs*.jar into Tomcat's classpath or something.
>>>>>>>>
>>>>>>>> Is this analysis correct ? If so, how to we get around this ?
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>>   Serge Huber.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>>>>>>> www.jahia.org : A collaborative source CMS and Portal Server
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --------------------------------------------------------------------- 
>>>>>>>>
>>>>>>>> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>>>>>> For additional commands, e-mail: 
>>>>>>>> jetspeed-dev-help@jakarta.apache.org
>>>>>>>
>>>>>>>
>>>>>>> Regards,
>>>>>>> -- 
>>>>>>> ******************************************
>>>>>>> *           Scott T. Weaver              *
>>>>>>> *         <we...@apache.org>            *
>>>>>>> *     <http://www.einnovation.com>       *
>>>>>>> * -------------------------------------- *
>>>>>>> *   Apache Jetspeed Enterprise Portal    *
>>>>>>> *     Apache Pluto Portlet Container     *
>>>>>>> *                                        *
>>>>>>> * OpenEditPro, Website Content Mangement *
>>>>>>> *     <http://www.openeditpro.com>       *
>>>>>>> ******************************************
>>>>>>>
>>>>>>>
>>>>>>> --------------------------------------------------------------------- 
>>>>>>>
>>>>>>> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>>>>> For additional commands, e-mail: 
>>>>>>> jetspeed-dev-help@jakarta.apache.org
>>>>>>
>>>>>>
>>>>>> - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>>>>> www.jahia.org : A collaborative source CMS and Portal Server
>>>>>>
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>>>> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>>>>
>>>>>
>>>>> - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>>>> www.jahia.org : A collaborative source CMS and Portal Server
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>>> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>>>
>>>>
>>>> - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>>> www.jahia.org : A collaborative source CMS and Portal Server
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>>
>>>
>>> - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>> www.jahia.org : A collaborative source CMS and Portal Server
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>
>>
>>
>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> 
> 
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org


Re: [J2] Using FileSystem PAM from web app class loader

Posted by Ate Douma <at...@douma.nu>.

Scott T Weaver wrote:

> On Mon, 2004-06-21 at 13:46, Serge Huber wrote:
> 
>>Found my problem !!
>>
>>It's amazing, but it actually explains why the problem was not happening to 
>>everybody. It's a problem that only exists with JDK 1.4.2_01 and earlier. 
>>It seems that in JDK 1.4.2_02 the implementation of classloading for the 
>>factory has changed. Before _02 they used the System class loader, whereas 
>>in _02 and later if the class is not found in the system class loader, it 
>>then tries in the Thread class loader.
> 
> 
> I am using 1.4.2_04-b05 on Mandrake Linux and have the same problem you
> and Ate were having.  Hmm, maybe they forgot to fix the Linux dist!
> 
> 
>>For more details go to :
>>
>>http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4788410
>>
>>To confirm I upgraded to JDK 1.4.2_04 and I now have the preference factory 
>>loading fine.
>>
>>Now this begs the question : do we want J2 to require JDK 1.4.2_02 or later 
>>or do we need to change the pref api implementation to be more portable ?
As I reported I had the problem with JDK 1.4.2_04 so it seems
it is *not* fixed from 1.4.2_4.

I did a quick update to get Scotts fix and tried to build again.
Now I get a test failure in o.a.j.engine.TestEngine.
I'm sorry but I have a meeting now so I can't help out for the next few hours...

TEST-org.apache.jetspeed.engine.TestEngine.txt:

Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 2.484 sec

------------- Standard Output ---------------
  INFO: Jetspeed environment attempting to initialize portal Engine...
JNDI System Property flag null
cn=org.nanocontainer.script.groovy.GroovyContainerBuilder
[org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl] ERROR: Naming Exception while looking up DataSource 
(java:comp/env/jdbc/jetspeed)
comp is not a subcontext
[org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR: PersistenceBrokerException during the execution of the query: 
Used ConnectionManager instance could not obtain a connection
Used ConnectionManager instance could not obtain a connection
------------- ---------------- ---------------
------------- Standard Error -----------------
javax.naming.NotContextException: comp is not a subcontext
	at tyrex.naming.EnvContext.internalLookup(Unknown Source)
	at tyrex.naming.EnvContext.lookup(Unknown Source)
	at tyrex.naming.java.JavaContext.lookup(Unknown Source)
	at javax.naming.InitialContext.lookup(InitialContext.java:347)
	at org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.newConnectionFromDataSource(Unknown Source)
	at org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.lookupConnection(Unknown Source)
	at org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.getConnection(Unknown Source)
	at org.apache.ojb.broker.accesslayer.StatementManager.getPreparedStatement(Unknown Source)
	at org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(Unknown Source)
	at org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(Unknown Source)
	at org.apache.ojb.broker.accesslayer.RsIterator.<init>(Unknown Source)
	at org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(Unknown Source)
	at org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(Unknown Source)
	at org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(Unknown Source)
	at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Unknown Source)
	at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source)
	at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source)
	at org.apache.jetspeed.components.persistence.store.ojb.pb.PBStore.getObjectByQuery(PBStore.java:224)
	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)
	at 
org.picocontainer.defaults.ImplementationHidingComponentAdapter$DelegatingInvocationHandler.invoke(ImplementationHidingComponentAdapter.java:92)
	at $Proxy0.getObjectByQuery(Unknown Source)
	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)
	at org.apache.jetspeed.components.adapters.AbstractDelegationStrategy.invoke(AbstractDelegationStrategy.java:66)
	at $Proxy0.getObjectByQuery(Unknown Source)
	at org.apache.jetspeed.prefs.impl.PreferencesImpl.getNode(PreferencesImpl.java:228)
	at org.apache.jetspeed.prefs.impl.PreferencesImpl.createPrefNode(PreferencesImpl.java:164)
	at org.apache.jetspeed.prefs.impl.PreferencesImpl.<init>(PreferencesImpl.java:113)
	at org.apache.jetspeed.prefs.impl.PreferencesImpl.<clinit>(PreferencesImpl.java:90)
	at org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl.systemRoot(PreferencesFactoryImpl.java:37)
	at org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:108)
	at org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292)
	at org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28)
	at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
	at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
	at org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76)
	at org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337)
	at org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
	at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
	at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
	at junit.framework.TestCase.runBare(TestCase.java:125)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:325)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:536)
org.apache.ojb.broker.PersistenceBrokerException: Used ConnectionManager instance could not obtain a connection
	at org.apache.ojb.broker.accesslayer.StatementManager.getPreparedStatement(Unknown Source)
	at org.apache.ojb.broker.accesslayer.JdbcAccessImpl.executeQuery(Unknown Source)
	at org.apache.ojb.broker.accesslayer.RsQueryObject.performQuery(Unknown Source)
	at org.apache.ojb.broker.accesslayer.RsIterator.<init>(Unknown Source)
	at org.apache.ojb.broker.core.RsIteratorFactoryImpl.createRsIterator(Unknown Source)
	at org.apache.ojb.broker.core.PersistenceBrokerImpl.getRsIteratorFromQuery(Unknown Source)
	at org.apache.ojb.broker.core.PersistenceBrokerImpl.getIteratorFromQuery(Unknown Source)
	at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Unknown Source)
	at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source)
	at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source)
	at org.apache.jetspeed.components.persistence.store.ojb.pb.PBStore.getObjectByQuery(PBStore.java:224)
	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)
	at 
org.picocontainer.defaults.ImplementationHidingComponentAdapter$DelegatingInvocationHandler.invoke(ImplementationHidingComponentAdapter.java:92)
	at $Proxy0.getObjectByQuery(Unknown Source)
	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)
	at org.apache.jetspeed.components.adapters.AbstractDelegationStrategy.invoke(AbstractDelegationStrategy.java:66)
	at $Proxy0.getObjectByQuery(Unknown Source)
	at org.apache.jetspeed.prefs.impl.PreferencesImpl.getNode(PreferencesImpl.java:228)
	at org.apache.jetspeed.prefs.impl.PreferencesImpl.createPrefNode(PreferencesImpl.java:164)
	at org.apache.jetspeed.prefs.impl.PreferencesImpl.<init>(PreferencesImpl.java:113)
	at org.apache.jetspeed.prefs.impl.PreferencesImpl.<clinit>(PreferencesImpl.java:90)
	at org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl.systemRoot(PreferencesFactoryImpl.java:37)
	at org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:108)
	at org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292)
	at org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28)
	at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
	at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
	at org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76)
	at org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337)
	at org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
	at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
	at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
	at junit.framework.TestCase.runBare(TestCase.java:125)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:325)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:536)
Caused by: org.apache.ojb.broker.accesslayer.LookupException: Naming Exception while looking up DataSource 
(java:comp/env/jdbc/jetspeed)
	at org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.newConnectionFromDataSource(Unknown Source)
	at org.apache.ojb.broker.accesslayer.ConnectionFactoryAbstractImpl.lookupConnection(Unknown Source)
	at org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.getConnection(Unknown Source)
	... 47 more
Caused by: javax.naming.NotContextException: comp is not a subcontext
	at tyrex.naming.EnvContext.internalLookup(Unknown Source)
	at tyrex.naming.EnvContext.lookup(Unknown Source)
	at tyrex.naming.java.JavaContext.lookup(Unknown Source)
	at javax.naming.InitialContext.lookup(InitialContext.java:347)
	... 50 more
java.lang.RuntimeException: Failed to initialize prefs api.  java.lang.ExceptionInInitializerError
	at org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:114)
	at org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292)
	at org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28)
	at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
	at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
	at org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76)
	at org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337)
	at org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
	at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
	at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
	at junit.framework.TestCase.runBare(TestCase.java:125)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:325)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:536)
org.apache.jetspeed.exception.JetspeedException: Jetspeed Initialization exception!
	at org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:166)
	at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
	at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
	at junit.framework.TestCase.runBare(TestCase.java:125)
	at junit.framework.TestResult$1.protect(TestResult.java:106)
	at junit.framework.TestResult.runProtected(TestResult.java:124)
	at junit.framework.TestResult.run(TestResult.java:109)
	at junit.framework.TestCase.run(TestCase.java:118)
	at junit.framework.TestSuite.runTest(TestSuite.java:208)
	at junit.framework.TestSuite.run(TestSuite.java:203)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:325)
	at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:536)
Caused by: java.lang.RuntimeException: Failed to initialize prefs api.  java.lang.ExceptionInInitializerError
	at org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:114)
	at org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292)
	at org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28)
	at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
	at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
	at org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76)
	at org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337)
	at org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
	... 11 more
------------- ---------------- ---------------
Testcase: testEngine(org.apache.jetspeed.engine.TestEngine):	Caused an ERROR
Unable to create Engine
org.apache.jetspeed.exception.JetspeedException: Unable to create Engine
	at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:70)
	at org.apache.jetspeed.engine.TestEngine.setUp(TestEngine.java:70)
Caused by: org.apache.jetspeed.exception.JetspeedException: Jetspeed Initialization exception!
	at org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:166)
	at org.apache.jetspeed.Jetspeed.createEngine(Jetspeed.java:60)
	... 10 more
Caused by: java.lang.RuntimeException: Failed to initialize prefs api.  java.lang.ExceptionInInitializerError
	at org.apache.jetspeed.prefs.impl.PreferencesProviderImpl.start(PreferencesProviderImpl.java:114)
	at org.picocontainer.defaults.DefaultPicoContainer.start(DefaultPicoContainer.java:292)
	at org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:28)
	at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:88)
	at org.nanocontainer.NanoContainer.<init>(NanoContainer.java:59)
	at org.apache.jetspeed.components.ComponentManager.<init>(ComponentManager.java:76)
	at org.apache.jetspeed.engine.JetspeedEngine.initComponents(JetspeedEngine.java:337)
	at org.apache.jetspeed.engine.JetspeedEngine.init(JetspeedEngine.java:140)
	... 11 more



>>
>>Regards,
>>   Serge Huber.
>>
>>At 18:59 21.06.2004, you wrote:
>>
>>
>>>I forgot to mention my environment :
>>>
>>>- latest J2 from CVS HEAD, including Ate's properties change
>>>- Windows XP SP 1
>>>- Sun JDK 1.4.2_01
>>>- Tomcat 4.1.30
>>>
>>>My guess about this problem is that as the JVM's Preferences impl uses the 
>>>system class loader (see my previous mail), we cannot access the 
>>>PreferencesFactoryImpl which is in a child class loader (the webapp's 
>>>class loader). Now I would love to be able to propose a workaround, but 
>>>since this seems to be a problem with the JDK's implementation and doesn't 
>>>offer an alternate way to set a class loader, I'm not sure there are any 
>>>options...
>>>
>>>Anyway, it might also just be my setup. Can somebody reproduce this problem ?
>>>
>>>Regards,
>>>  Serge Huber.
>>>
>>>At 18:44 21.06.2004, you wrote:
>>>
>>>
>>>>Scott,
>>>>
>>>>I did a complete checkout of J2, then :
>>>>
>>>>allClean
>>>>allBuild
>>>>quickStart
>>>>
>>>>and then started Tomcat, here is the log of what happened :
>>>>
>>>> INFO: Preparing to deploy portlet app "HW_App"
>>>> INFO: Deploying portlet applicaion WAR demo.war
>>>> INFO: Portlet application deployment target directory is 
>>>>C:\java\technologies\jakarta-tomcat\webapps/HW_App
>>>>java.lang.InternalError: Can't instantiate Preferences factory 
>>>>java.lang.ClassNotFoundException: 
>>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>        at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>>>        at 
>>>>org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
>>>>        at 
>>>>org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
>>>>        at 
>>>>org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
>>>>        at 
>>>>org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>>>        at 
>>>>org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>>>>        at 
>>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>>>>Source)
>>>>        at 
>>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>>>>Source)
>>>>        at 
>>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
>>>>Source)
>>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>>>        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>>>        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>>>>        at org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>>>        at 
>>>>org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
>>>>        at 
>>>>org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
>>>>        at 
>>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
>>>>        at 
>>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
>>>>        at 
>>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
>>>>        at 
>>>>org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
>>>>        at 
>>>>org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
>>>>        at 
>>>>org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
>>>>        at 
>>>>org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
>>>>        at 
>>>>org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
>>>>ERROR: Unable to register portlet application, HW_App, through the 
>>>>portlet registry: 
>>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could not
>>>>unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
>>>>Preferences factory java.lang.ClassNotFoundException: 
>>>>org.apache.jetspeed.prefs.impl.Preferenc
>>>>esFactoryImpl
>>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
>>>>not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
>>>>Preferences factory
>>>> java.lang.ClassNotFoundException: 
>>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>        at 
>>>>org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172)
>>>>        at 
>>>>org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
>>>>        at 
>>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
>>>>        at 
>>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
>>>>        at 
>>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
>>>>        at 
>>>>org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
>>>>        at 
>>>>org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
>>>>        at 
>>>>org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
>>>>        at 
>>>>org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
>>>>        at 
>>>>org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
>>>>Caused by: java.lang.InternalError: Can't instantiate Preferences factory 
>>>>java.lang.ClassNotFoundException: 
>>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
>>>>l
>>>>        at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>>>        at 
>>>>org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
>>>>        at 
>>>>org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
>>>>        at 
>>>>org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
>>>>        at 
>>>>org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>>>        at 
>>>>org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>>>>        at 
>>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>>>>Source)
>>>>        at 
>>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>>>>Source)
>>>>        at 
>>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
>>>>Source)
>>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>>>        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>>>        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>>>>        at org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>>>        at 
>>>>org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
>>>>        ... 9 more
>>>>ERROR: Unexpected exception deploying portlet application: 
>>>>org.apache.jetspeed.components.portletregistry.RegistryException: Unable 
>>>>to register portlet applicat
>>>>ion, HW_App, through the portlet registry: 
>>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
>>>>not unmarshal portlet.xml. java.lang.InternalE
>>>>rror: Can't instantiate Preferences factory 
>>>>java.lang.ClassNotFoundException: 
>>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl attempting rollback...
>>>>org.apache.jetspeed.components.portletregistry.RegistryException: Unable 
>>>>to register portlet application, HW_App, through the portlet registry: 
>>>>org.apache.jetsp
>>>>eed.tools.pamanager.PortletApplicationException: Could not unmarshal 
>>>>portlet.xml. java.lang.InternalError: Can't instantiate Preferences 
>>>>factory java.lang.Class
>>>>NotFoundException: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>        at 
>>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383)
>>>>        at 
>>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
>>>>        at 
>>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
>>>>        at 
>>>>org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
>>>>        at 
>>>>org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
>>>>        at 
>>>>org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
>>>>        at 
>>>>org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
>>>>        at 
>>>>org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
>>>>Caused by: 
>>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
>>>>not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate Preferen
>>>>ces factory java.lang.ClassNotFoundException: 
>>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>        at 
>>>>org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172)
>>>>        at 
>>>>org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
>>>>        at 
>>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
>>>>        ... 7 more
>>>>Caused by: java.lang.InternalError: Can't instantiate Preferences factory 
>>>>java.lang.ClassNotFoundException: 
>>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
>>>>l
>>>>        at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>>>        at 
>>>>org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
>>>>        at 
>>>>org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
>>>>        at 
>>>>org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
>>>>        at 
>>>>org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>>>        at 
>>>>org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>>>>        at 
>>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>>>>Source)
>>>>        at 
>>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>>>>Source)
>>>>        at 
>>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
>>>>Source)
>>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>>>        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>>>        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>>>>        at org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>>>        at 
>>>>org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
>>>>        ... 9 more
>>>> INFO: Exception in deploy. Rollback of application deployment...
>>>> INFO: Rollback: Remove 
>>>>C:\java\technologies\jakarta-tomcat\webapps/HW_App and all sub-directories.
>>>>ERROR: org.apache.jetspeed.deployment.DeploymentException: Error 
>>>>deploying portlet app: 
>>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: org.apa
>>>>che.jetspeed.components.portletregistry.RegistryException: Unable to 
>>>>register portlet application, HW_App, through the portlet registry: 
>>>>org.apache.jetspeed.too
>>>>ls.pamanager.PortletApplicationException: Could not unmarshal 
>>>>portlet.xml. java.lang.InternalError: Can't instantiate Preferences 
>>>>factory java.lang.ClassNotFoun
>>>>dException: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>org.apache.jetspeed.deployment.DeploymentException: Error deploying 
>>>>portlet app: 
>>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: org.apache.jet
>>>>speed.components.portletregistry.RegistryException: Unable to register 
>>>>portlet application, HW_App, through the portlet registry: 
>>>>org.apache.jetspeed.tools.pama
>>>>nager.PortletApplicationException: Could not unmarshal portlet.xml. 
>>>>java.lang.InternalError: Can't instantiate Preferences factory 
>>>>java.lang.ClassNotFoundExcept
>>>>ion: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>        at 
>>>>org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:128)
>>>>        at 
>>>>org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
>>>>        at 
>>>>org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
>>>>        at 
>>>>org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
>>>>Caused by: 
>>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>>>org.apache.jetspeed.components.portletregistry.RegistryException: Unable 
>>>>to register
>>>> portlet application, HW_App, through the portlet registry: 
>>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
>>>>not unmarshal portlet.xml. ja
>>>>va.lang.InternalError: Can't instantiate Preferences factory 
>>>>java.lang.ClassNotFoundException: 
>>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>        at 
>>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:319)
>>>>        at 
>>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
>>>>        at 
>>>>org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
>>>>        at 
>>>>org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
>>>>        ... 3 more
>>>>Caused by: 
>>>>org.apache.jetspeed.components.portletregistry.RegistryException: Unable 
>>>>to register portlet application, HW_App, through the portlet registry: org.a
>>>>pache.jetspeed.tools.pamanager.PortletApplicationException: Could not 
>>>>unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
>>>>Preferences factory java
>>>>.lang.ClassNotFoundException: 
>>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>        at 
>>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383)
>>>>        at 
>>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
>>>>        ... 6 more
>>>>Caused by: 
>>>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
>>>>not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate Preferen
>>>>ces factory java.lang.ClassNotFoundException: 
>>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>        at 
>>>>org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172)
>>>>        at 
>>>>org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
>>>>        at 
>>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
>>>>        ... 7 more
>>>>Caused by: java.lang.InternalError: Can't instantiate Preferences factory 
>>>>java.lang.ClassNotFoundException: 
>>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
>>>>l
>>>>        at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>>>        at 
>>>>org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
>>>>        at 
>>>>org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
>>>>        at 
>>>>org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
>>>>        at 
>>>>org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>>>        at 
>>>>org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>>>>        at 
>>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>>>>Source)
>>>>        at 
>>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>>>>Source)
>>>>        at 
>>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
>>>>Source)
>>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>>>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>>>        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>>>        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>>>>        at org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>>>        at 
>>>>org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
>>>>        ... 9 more
>>>> INFO: Loading portlet application from web archive 
>>>>C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\jetspeed-layouts.war
>>>> INFO: Preparing to deploy portlet app "jetspeed"
>>>> INFO: jetspeed-layouts.war will be registered as a local portlet 
>>>>applicaiton.
>>>> INFO: Portlet application deployment target directory is jetspeed/jetspeed
>>>> INFO: Did not load exteneded metadata as it most likely does not 
>>>>exist.  org.apache.commons.vfs.FileSystemException: Could not read from 
>>>>"jar:file://C:/java/te
>>>>chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/jetspeed-portlet.xml" 
>>>>because it is a not a file.
>>>> INFO: Loading web.xml into memory....
>>>> INFO: Saving the portlet.xml in the registry...
>>>> INFO: Committing registry changes...
>>>> INFO: FileSystem deployment done.
>>>> INFO: Adding 
>>>>jar:file://C:/java/technologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/classes
>>>>to class path.
>>>> INFO: Portlet app "jetspeed" successfuly deployed.
>>>> INFO: Loading portlet application from web archive 
>>>>C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\pam.war
>>>> INFO: Preparing to deploy portlet app "pam"
>>>> INFO: Deploying portlet applicaion WAR pam.war
>>>> INFO: Portlet application deployment target directory is 
>>>>C:\java\technologies\jakarta-tomcat\webapps/pam
>>>>Writing out infused web.xml for pam
>>>> INFO: Loading web.xml into memory....
>>>> INFO: Saving the portlet.xml in the registry...
>>>> INFO: Committing registry changes...
>>>> INFO: FileSystem deployment done.
>>>> INFO: Catalina deployment response: OK - Application installTe pour le 
>>>>chemin de contexte /pam
>>>>
>>>> INFO: Portlet app "pam" successfuly deployed.
>>>> INFO: Loading portlet application from web archive 
>>>>C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\security.war
>>>> INFO: Preparing to deploy portlet app "security"
>>>> INFO: Deploying portlet applicaion WAR security.war
>>>> INFO: Portlet application deployment target directory is 
>>>>C:\java\technologies\jakarta-tomcat\webapps/security
>>>>Writing out infused web.xml for security
>>>> INFO: Loading web.xml into memory....
>>>> INFO: Saving the portlet.xml in the registry...
>>>> INFO: Committing registry changes...
>>>> INFO: FileSystem deployment done.
>>>> INFO: Catalina deployment response: OK - Application installTe pour le 
>>>>chemin de contexte /security
>>>>
>>>> INFO: Portlet app "security" successfuly deployed.
>>>> INFO: Loading portlet application from web archive 
>>>>C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\struts-demo.war
>>>> INFO: Preparing to deploy portlet app "struts-demo"
>>>> INFO: Deploying portlet applicaion WAR struts-demo.war
>>>> INFO: Portlet application deployment target directory is 
>>>>C:\java\technologies\jakarta-tomcat\webapps/struts-demo
>>>>Writing out infused web.xml for struts-demo
>>>> INFO: Did not load exteneded metadata as it most likely does not 
>>>>exist.  org.apache.commons.vfs.FileSystemException: Could not read from 
>>>>"jar:file://C:/java/te
>>>>chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/struts-demo.war!/WEB-INF/jetspeed-portlet.xml" 
>>>>because it is a not a file.
>>>> INFO: Loading web.xml into memory....
>>>> INFO: Saving the portlet.xml in the registry...
>>>> INFO: Committing registry changes...
>>>> INFO: FileSystem deployment done.
>>>> INFO: Catalina deployment response: OK - Application installTe pour le 
>>>>chemin de contexte /struts-demo
>>>>
>>>> INFO: Portlet app "struts-demo" successfuly deployed.
>>>>
>>>>So it seems that even within the J2 webapp there is a problem with the 
>>>>class loading of the preference factory. What is strange is that some PAs 
>>>>deployed, but I guess they don't use any preferences ?
>>>>
>>>>Regards,
>>>>  Serge Huber.
>>>>
>>>>At 16:43 21.06.2004, you wrote:
>>>>
>>>>
>>>>>Hi Scott,
>>>>>
>>>>>Actually I'm calling the FileSystemPAM from my own deployer, within 
>>>>>Jahia. Maybe I'm missing something in my deployment ? I have the 
>>>>>jetspeed-prefs*.jar in the WEB-INF/lib directory, along with all of J2, 
>>>>>and I updated the assembly script a few hours ago.
>>>>>
>>>>>I didn't test with auto-deploy, but I could to see if it works better.
>>>>>
>>>>>Regards,
>>>>>  Serge...
>>>>>
>>>>>At 16:31 21.06.2004, you wrote:
>>>>>
>>>>>>Hi Serge,
>>>>>>
>>>>>>
>>>>>>Is this exception coming from auto-deployment?  Because I am not having
>>>>>>any issues with deployment.  I made PreferenceProviderImpl Startable so
>>>>>>this wouldn't happen, maybe this doesn't address all possible scenarios
>>>>>>though.
>>>>>>
>>>>>>
>>>>>>On Mon, 2004-06-21 at 10:23, Serge Huber wrote:
>>>>>>
>>>>>>>Hi,
>>>>>>>
>>>>>>>I'm having some problem using the FileSystemPAM from within a web app
>>>>>>>context (seems to work in the tests, which use the system class loader).
>>>>>>>
>>>>>>>Basically I get the following exception :
>>>>>>>
>>>>>>>java.lang.InternalError: Can't instantiate Preferences factory
>>>>>>>java.lang.ClassNotFoundException:
>>>>>>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>>>>>
>>>>>>>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>>>>>>         at
>>>>>>>
>>>>>>
>>>>>>org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
>>>>>>
>>>>>>>         at
>>>>>>>
>>>>>>
>>>>>>org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
>>>>>>
>>>>>>>         at
>>>>>>>
>>>>>>
>>>>>>org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
>>>>>>
>>>>>>>         at 
>>>>>>
>>>>>>org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>>>>>
>>>>>>>         at 
>>>>>>
>>>>>>org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
>>>>>>
>>>>>>>Source)
>>>>>>>         at
>>>>>>>
>>>>>>
>>>>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown
>>>>>>
>>>>>>>Source)
>>>>>>>         at
>>>>>>>
>>>>>>
>>>>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>>>>>>
>>>>>>
>>>>>>>Source)
>>>>>>>         at
>>>>>>>
>>>>>>
>>>>>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
>>>>>>
>>>>>>>Source)
>>>>>>>         at 
>>>>>>
>>>>>>org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>>>>>>
>>>>>>>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>>>>>>
>>>>>>Source)
>>>>>>
>>>>>>>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>>>>>>         at 
>>>>>>
>>>>>>org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>>>>>>
>>>>>>>         at 
>>>>>>
>>>>>>org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>>>>>
>>>>>>>         at
>>>>>>>
>>>>>>
>>>>>>org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
>>>>>>
>>>>>>>         at
>>>>>>>
>>>>>>
>>>>>>org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
>>>>>>
>>>>>>>         at
>>>>>>>
>>>>>>
>>>>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
>>>>>>
>>>>>>>         at
>>>>>>>
>>>>>>
>>>>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
>>>>>>
>>>>>>>         at
>>>>>>>
>>>>>>
>>>>>>org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
>>>>>>
>>>>>>>I looked at the JDK's source and found the following code when 
>>>>>>
>>>>>>loading the
>>>>>>
>>>>>>>PreferenceFactory implementation :
>>>>>>>
>>>>>>>             factory = (PreferencesFactory)
>>>>>>>                Class.forName(factoryName, false,
>>>>>>>ClassLoader.getSystemClassLoader()).newInstance();
>>>>>>>
>>>>>>>If this means what I think it does, the preference factory may only be
>>>>>>>loaded from the root class loader, which means that we would need to 
>>>>>>
>>>>>>deploy
>>>>>>
>>>>>>>the jetspeed-prefs*.jar into Tomcat's classpath or something.
>>>>>>>
>>>>>>>Is this analysis correct ? If so, how to we get around this ?
>>>>>>>
>>>>>>>Regards,
>>>>>>>   Serge Huber.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>>>>>>www.jahia.org : A collaborative source CMS and Portal Server
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>---------------------------------------------------------------------
>>>>>>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>>>>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>>>>>
>>>>>>Regards,
>>>>>>--
>>>>>>******************************************
>>>>>>*           Scott T. Weaver              *
>>>>>>*         <we...@apache.org>            *
>>>>>>*     <http://www.einnovation.com>       *
>>>>>>* -------------------------------------- *
>>>>>>*   Apache Jetspeed Enterprise Portal    *
>>>>>>*     Apache Pluto Portlet Container     *
>>>>>>*                                        *
>>>>>>* OpenEditPro, Website Content Mangement *
>>>>>>*     <http://www.openeditpro.com>       *
>>>>>>******************************************
>>>>>>
>>>>>>
>>>>>>---------------------------------------------------------------------
>>>>>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>>>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>>>>
>>>>>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>>>>www.jahia.org : A collaborative source CMS and Portal Server
>>>>>
>>>>>
>>>>>---------------------------------------------------------------------
>>>>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>>>
>>>>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>>>www.jahia.org : A collaborative source CMS and Portal Server
>>>>
>>>>
>>>>---------------------------------------------------------------------
>>>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>>
>>>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>>www.jahia.org : A collaborative source CMS and Portal Server
>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>
>>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>www.jahia.org : A collaborative source CMS and Portal Server 
>>
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> 
> 
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org


Re: [J2] Using FileSystem PAM from web app class loader

Posted by Serge Huber <sh...@jahia.com>.
No actually Ate was not having the same problem as I was.

My problem was that the preference factory was not even loading. Please 
check out my stack traces, they report an error within JDK classes. I'm not 
sure if the fix you committed will solve the problem on JDK 1.4.1_01 and 
earlier, because of the way it looks for the factory. It would require some 
testing. If this fails on older JDKs, it means J2 has a dependency on JDK 
1.4.2_02.

I also checked the release notes for the linux version and the solaris 
version and all of these were changed during _02.

Regards,
   Serge Huber.

At 19:58 21.06.2004, you wrote:
>On Mon, 2004-06-21 at 13:46, Serge Huber wrote:
> > Found my problem !!
> >
> > It's amazing, but it actually explains why the problem was not 
> happening to
> > everybody. It's a problem that only exists with JDK 1.4.2_01 and earlier.
> > It seems that in JDK 1.4.2_02 the implementation of classloading for the
> > factory has changed. Before _02 they used the System class loader, whereas
> > in _02 and later if the class is not found in the system class loader, it
> > then tries in the Thread class loader.
>
>I am using 1.4.2_04-b05 on Mandrake Linux and have the same problem you
>and Ate were having.  Hmm, maybe they forgot to fix the Linux dist!
>
> >
> > For more details go to :
> >
> > http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4788410
> >
> > To confirm I upgraded to JDK 1.4.2_04 and I now have the preference 
> factory
> > loading fine.
> >
> > Now this begs the question : do we want J2 to require JDK 1.4.2_02 or 
> later
> > or do we need to change the pref api implementation to be more portable ?
> >
> > Regards,
> >    Serge Huber.
> >
> > At 18:59 21.06.2004, you wrote:
> >
> > >I forgot to mention my environment :
> > >
> > >- latest J2 from CVS HEAD, including Ate's properties change
> > >- Windows XP SP 1
> > >- Sun JDK 1.4.2_01
> > >- Tomcat 4.1.30
> > >
> > >My guess about this problem is that as the JVM's Preferences impl uses 
> the
> > >system class loader (see my previous mail), we cannot access the
> > >PreferencesFactoryImpl which is in a child class loader (the webapp's
> > >class loader). Now I would love to be able to propose a workaround, but
> > >since this seems to be a problem with the JDK's implementation and 
> doesn't
> > >offer an alternate way to set a class loader, I'm not sure there are any
> > >options...
> > >
> > >Anyway, it might also just be my setup. Can somebody reproduce this 
> problem ?
> > >
> > >Regards,
> > >   Serge Huber.
> > >
> > >At 18:44 21.06.2004, you wrote:
> > >
> > >>Scott,
> > >>
> > >>I did a complete checkout of J2, then :
> > >>
> > >>allClean
> > >>allBuild
> > >>quickStart
> > >>
> > >>and then started Tomcat, here is the log of what happened :
> > >>
> > >>  INFO: Preparing to deploy portlet app "HW_App"
> > >>  INFO: Deploying portlet applicaion WAR demo.war
> > >>  INFO: Portlet application deployment target directory is
> > >> C:\java\technologies\jakarta-tomcat\webapps/HW_App
> > >>java.lang.InternalError: Can't instantiate Preferences factory
> > >>java.lang.ClassNotFoundException:
> > >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> > >>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> > >>         at
> > >> 
> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
> > >>         at
> > >> 
> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
> > >>         at
> > >> 
> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
> > >>         at
> > >> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> > >>         at
> > >> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> > >>         at
> > >> 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown
> > >> Source)
> > >>         at
> > >> 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>
> > >> Source)
> > >>         at
> > >> 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> > >> Source)
> > >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
> Source)
> > >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
> Source)
> > >>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> > >>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
> Source)
> > >>         at 
> org.apache.commons.digester.Digester.parse(Digester.java:1586)
> > >>         at
> > >> 
> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
> > >>         at
> > >> 
> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
> > >>         at
> > >> 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
> > >>         at
> > >> 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
> > >>         at
> > >> 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
> > >>         at
> > >> 
> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
> > >>         at
> > >> 
> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
> > >>         at
> > >> 
> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
> > >>         at
> > >> 
> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
> > >>         at
> > >> 
> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
> > >>ERROR: Unable to register portlet application, HW_App, through the
> > >>portlet registry:
> > >>org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
> Could not
> > >>unmarshal portlet.xml. java.lang.InternalError: Can't instantiate
> > >>Preferences factory java.lang.ClassNotFoundException:
> > >>org.apache.jetspeed.prefs.impl.Preferenc
> > >>esFactoryImpl
> > >>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could
> > >>not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate
> > >>Preferences factory
> > >>  java.lang.ClassNotFoundException:
> > >> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> > >>         at
> > >> 
> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172)
> > >>         at
> > >> 
> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
> > >>         at
> > >> 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
> > >>         at
> > >> 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
> > >>         at
> > >> 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
> > >>         at
> > >> 
> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
> > >>         at
> > >> 
> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
> > >>         at
> > >> 
> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
> > >>         at
> > >> 
> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
> > >>         at
> > >> 
> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
> > >>Caused by: java.lang.InternalError: Can't instantiate Preferences 
> factory
> > >>java.lang.ClassNotFoundException:
> > >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
> > >>l
> > >>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> > >>         at
> > >> 
> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
> > >>         at
> > >> 
> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
> > >>         at
> > >> 
> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
> > >>         at
> > >> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> > >>         at
> > >> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> > >>         at
> > >> 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown
> > >> Source)
> > >>         at
> > >> 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>
> > >> Source)
> > >>         at
> > >> 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> > >> Source)
> > >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
> Source)
> > >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
> Source)
> > >>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> > >>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
> Source)
> > >>         at 
> org.apache.commons.digester.Digester.parse(Digester.java:1586)
> > >>         at
> > >> 
> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
> > >>         ... 9 more
> > >>ERROR: Unexpected exception deploying portlet application:
> > >>org.apache.jetspeed.components.portletregistry.RegistryException: Unable
> > >>to register portlet applicat
> > >>ion, HW_App, through the portlet registry:
> > >>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could
> > >>not unmarshal portlet.xml. java.lang.InternalE
> > >>rror: Can't instantiate Preferences factory
> > >>java.lang.ClassNotFoundException:
> > >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl attempting 
> rollback...
> > >>org.apache.jetspeed.components.portletregistry.RegistryException: Unable
> > >>to register portlet application, HW_App, through the portlet registry:
> > >>org.apache.jetsp
> > >>eed.tools.pamanager.PortletApplicationException: Could not unmarshal
> > >>portlet.xml. java.lang.InternalError: Can't instantiate Preferences
> > >>factory java.lang.Class
> > >>NotFoundException: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> > >>         at
> > >> 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383)
> > >>         at
> > >> 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
> > >>         at
> > >> 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
> > >>         at
> > >> 
> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
> > >>         at
> > >> 
> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
> > >>         at
> > >> 
> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
> > >>         at
> > >> 
> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
> > >>         at
> > >> 
> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
> > >>Caused by:
> > >>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could
> > >>not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
> Preferen
> > >>ces factory java.lang.ClassNotFoundException:
> > >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> > >>         at
> > >> 
> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172)
> > >>         at
> > >> 
> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
> > >>         at
> > >> 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
> > >>         ... 7 more
> > >>Caused by: java.lang.InternalError: Can't instantiate Preferences 
> factory
> > >>java.lang.ClassNotFoundException:
> > >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
> > >>l
> > >>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> > >>         at
> > >> 
> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
> > >>         at
> > >> 
> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
> > >>         at
> > >> 
> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
> > >>         at
> > >> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> > >>         at
> > >> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> > >>         at
> > >> 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown
> > >> Source)
> > >>         at
> > >> 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>
> > >> Source)
> > >>         at
> > >> 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> > >> Source)
> > >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
> Source)
> > >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
> Source)
> > >>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> > >>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
> Source)
> > >>         at 
> org.apache.commons.digester.Digester.parse(Digester.java:1586)
> > >>         at
> > >> 
> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
> > >>         ... 9 more
> > >>  INFO: Exception in deploy. Rollback of application deployment...
> > >>  INFO: Rollback: Remove
> > >> C:\java\technologies\jakarta-tomcat\webapps/HW_App and all 
> sub-directories.
> > >>ERROR: org.apache.jetspeed.deployment.DeploymentException: Error
> > >>deploying portlet app:
> > >>org.apache.jetspeed.tools.pamanager.PortletApplicationException: org.apa
> > >>che.jetspeed.components.portletregistry.RegistryException: Unable to
> > >>register portlet application, HW_App, through the portlet registry:
> > >>org.apache.jetspeed.too
> > >>ls.pamanager.PortletApplicationException: Could not unmarshal
> > >>portlet.xml. java.lang.InternalError: Can't instantiate Preferences
> > >>factory java.lang.ClassNotFoun
> > >>dException: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> > >>org.apache.jetspeed.deployment.DeploymentException: Error deploying
> > >>portlet app:
> > >>org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
> org.apache.jet
> > >>speed.components.portletregistry.RegistryException: Unable to register
> > >>portlet application, HW_App, through the portlet registry:
> > >>org.apache.jetspeed.tools.pama
> > >>nager.PortletApplicationException: Could not unmarshal portlet.xml.
> > >>java.lang.InternalError: Can't instantiate Preferences factory
> > >>java.lang.ClassNotFoundExcept
> > >>ion: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> > >>         at
> > >> 
> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:128)
> > >>         at
> > >> 
> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
> > >>         at
> > >> 
> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
> > >>         at
> > >> 
> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
> > >>Caused by:
> > >>org.apache.jetspeed.tools.pamanager.PortletApplicationException:
> > >>org.apache.jetspeed.components.portletregistry.RegistryException: Unable
> > >>to register
> > >>  portlet application, HW_App, through the portlet registry:
> > >> org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could
> > >> not unmarshal portlet.xml. ja
> > >>va.lang.InternalError: Can't instantiate Preferences factory
> > >>java.lang.ClassNotFoundException:
> > >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> > >>         at
> > >> 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:319)
> > >>         at
> > >> 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
> > >>         at
> > >> 
> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
> > >>         at
> > >> 
> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
> > >>         ... 3 more
> > >>Caused by:
> > >>org.apache.jetspeed.components.portletregistry.RegistryException: Unable
> > >>to register portlet application, HW_App, through the portlet 
> registry: org.a
> > >>pache.jetspeed.tools.pamanager.PortletApplicationException: Could not
> > >>unmarshal portlet.xml. java.lang.InternalError: Can't instantiate
> > >>Preferences factory java
> > >>.lang.ClassNotFoundException:
> > >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> > >>         at
> > >> 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383)
> > >>         at
> > >> 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
> > >>         ... 6 more
> > >>Caused by:
> > >>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could
> > >>not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
> Preferen
> > >>ces factory java.lang.ClassNotFoundException:
> > >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> > >>         at
> > >> 
> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172)
> > >>         at
> > >> 
> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
> > >>         at
> > >> 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
> > >>         ... 7 more
> > >>Caused by: java.lang.InternalError: Can't instantiate Preferences 
> factory
> > >>java.lang.ClassNotFoundException:
> > >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
> > >>l
> > >>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> > >>         at
> > >> 
> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
> > >>         at
> > >> 
> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
> > >>         at
> > >> 
> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
> > >>         at
> > >> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> > >>         at
> > >> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> > >>         at
> > >> 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown
> > >> Source)
> > >>         at
> > >> 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>
> > >> Source)
> > >>         at
> > >> 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> > >> Source)
> > >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
> Source)
> > >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
> Source)
> > >>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> > >>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
> Source)
> > >>         at 
> org.apache.commons.digester.Digester.parse(Digester.java:1586)
> > >>         at
> > >> 
> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
> > >>         ... 9 more
> > >>  INFO: Loading portlet application from web archive
> > >> 
> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\jetspeed-layouts.war
> > >>  INFO: Preparing to deploy portlet app "jetspeed"
> > >>  INFO: jetspeed-layouts.war will be registered as a local portlet
> > >> applicaiton.
> > >>  INFO: Portlet application deployment target directory is 
> jetspeed/jetspeed
> > >>  INFO: Did not load exteneded metadata as it most likely does not
> > >> exist.  org.apache.commons.vfs.FileSystemException: Could not read from
> > >> "jar:file://C:/java/te
> > >>chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-lay 
> outs.war!/WEB-INF/jetspeed-portlet.xml"
> > >>because it is a not a file.
> > >>  INFO: Loading web.xml into memory....
> > >>  INFO: Saving the portlet.xml in the registry...
> > >>  INFO: Committing registry changes...
> > >>  INFO: FileSystem deployment done.
> > >>  INFO: Adding
> > >> 
> jar:file://C:/java/technologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/classes
> > >> to class path.
> > >>  INFO: Portlet app "jetspeed" successfuly deployed.
> > >>  INFO: Loading portlet application from web archive
> > >> 
> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\pam.war
> > >>  INFO: Preparing to deploy portlet app "pam"
> > >>  INFO: Deploying portlet applicaion WAR pam.war
> > >>  INFO: Portlet application deployment target directory is
> > >> C:\java\technologies\jakarta-tomcat\webapps/pam
> > >>Writing out infused web.xml for pam
> > >>  INFO: Loading web.xml into memory....
> > >>  INFO: Saving the portlet.xml in the registry...
> > >>  INFO: Committing registry changes...
> > >>  INFO: FileSystem deployment done.
> > >>  INFO: Catalina deployment response: OK - Application installTe pour le
> > >> chemin de contexte /pam
> > >>
> > >>  INFO: Portlet app "pam" successfuly deployed.
> > >>  INFO: Loading portlet application from web archive
> > >> 
> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\security.war
> > >>  INFO: Preparing to deploy portlet app "security"
> > >>  INFO: Deploying portlet applicaion WAR security.war
> > >>  INFO: Portlet application deployment target directory is
> > >> C:\java\technologies\jakarta-tomcat\webapps/security
> > >>Writing out infused web.xml for security
> > >>  INFO: Loading web.xml into memory....
> > >>  INFO: Saving the portlet.xml in the registry...
> > >>  INFO: Committing registry changes...
> > >>  INFO: FileSystem deployment done.
> > >>  INFO: Catalina deployment response: OK - Application installTe pour le
> > >> chemin de contexte /security
> > >>
> > >>  INFO: Portlet app "security" successfuly deployed.
> > >>  INFO: Loading portlet application from web archive
> > >> 
> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\struts-demo.war
> > >>  INFO: Preparing to deploy portlet app "struts-demo"
> > >>  INFO: Deploying portlet applicaion WAR struts-demo.war
> > >>  INFO: Portlet application deployment target directory is
> > >> C:\java\technologies\jakarta-tomcat\webapps/struts-demo
> > >>Writing out infused web.xml for struts-demo
> > >>  INFO: Did not load exteneded metadata as it most likely does not
> > >> exist.  org.apache.commons.vfs.FileSystemException: Could not read from
> > >> "jar:file://C:/java/te
> > >>chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/struts-demo. 
> war!/WEB-INF/jetspeed-portlet.xml"
> > >>because it is a not a file.
> > >>  INFO: Loading web.xml into memory....
> > >>  INFO: Saving the portlet.xml in the registry...
> > >>  INFO: Committing registry changes...
> > >>  INFO: FileSystem deployment done.
> > >>  INFO: Catalina deployment response: OK - Application installTe pour le
> > >> chemin de contexte /struts-demo
> > >>
> > >>  INFO: Portlet app "struts-demo" successfuly deployed.
> > >>
> > >>So it seems that even within the J2 webapp there is a problem with the
> > >>class loading of the preference factory. What is strange is that some 
> PAs
> > >>deployed, but I guess they don't use any preferences ?
> > >>
> > >>Regards,
> > >>   Serge Huber.
> > >>
> > >>At 16:43 21.06.2004, you wrote:
> > >>
> > >>>Hi Scott,
> > >>>
> > >>>Actually I'm calling the FileSystemPAM from my own deployer, within
> > >>>Jahia. Maybe I'm missing something in my deployment ? I have the
> > >>>jetspeed-prefs*.jar in the WEB-INF/lib directory, along with all of J2,
> > >>>and I updated the assembly script a few hours ago.
> > >>>
> > >>>I didn't test with auto-deploy, but I could to see if it works better.
> > >>>
> > >>>Regards,
> > >>>   Serge...
> > >>>
> > >>>At 16:31 21.06.2004, you wrote:
> > >>>>Hi Serge,
> > >>>>
> > >>>>
> > >>>>Is this exception coming from auto-deployment?  Because I am not having
> > >>>>any issues with deployment.  I made PreferenceProviderImpl Startable so
> > >>>>this wouldn't happen, maybe this doesn't address all possible scenarios
> > >>>>though.
> > >>>>
> > >>>>
> > >>>>On Mon, 2004-06-21 at 10:23, Serge Huber wrote:
> > >>>> > Hi,
> > >>>> >
> > >>>> > I'm having some problem using the FileSystemPAM from within a 
> web app
> > >>>> > context (seems to work in the tests, which use the system class 
> loader).
> > >>>> >
> > >>>> > Basically I get the following exception :
> > >>>> >
> > >>>> > java.lang.InternalError: Can't instantiate Preferences factory
> > >>>> > java.lang.ClassNotFoundException:
> > >>>> > org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> > >>>> >
> > >>>> >          at 
> java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> > >>>> >          at
> > >>>> >
> > >>>> 
> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
> > >>>> >          at
> > >>>> >
> > >>>> 
> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
> > >>>> >          at
> > >>>> >
> > >>>> 
> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
> > >>>> >          at
> > >>>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> > >>>> >          at
> > >>>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
> > >>>> > Source)
> > >>>> >          at
> > >>>> >
> > >>>> 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown
> > >>>> > Source)
> > >>>> >          at
> > >>>> >
> > >>>> 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>
> > >>>>
> > >>>> > Source)
> > >>>> >          at
> > >>>> >
> > >>>> 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> > >>>> > Source)
> > >>>> >          at
> > >>>> org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> > >>>> >          at 
> org.apache.xerces.parsers.DTDConfiguration.parse(Unknown
> > >>>> Source)
> > >>>> >          at org.apache.xerces.parsers.XMLParser.parse(Unknown 
> Source)
> > >>>> >          at
> > >>>> org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> > >>>> >          at
> > >>>> org.apache.commons.digester.Digester.parse(Digester.java:1586)
> > >>>> >          at
> > >>>> >
> > >>>> 
> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
> > >>>> >          at
> > >>>> >
> > >>>> 
> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
> > >>>> >          at
> > >>>> >
> > >>>> 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
> > >>>> >          at
> > >>>> >
> > >>>> 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
> > >>>> >          at
> > >>>> >
> > >>>> 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
> > >>>> >
> > >>>> > I looked at the JDK's source and found the following code when
> > >>>> loading the
> > >>>> > PreferenceFactory implementation :
> > >>>> >
> > >>>> >              factory = (PreferencesFactory)
> > >>>> >                 Class.forName(factoryName, false,
> > >>>> > ClassLoader.getSystemClassLoader()).newInstance();
> > >>>> >
> > >>>> > If this means what I think it does, the preference factory may 
> only be
> > >>>> > loaded from the root class loader, which means that we would 
> need to
> > >>>> deploy
> > >>>> > the jetspeed-prefs*.jar into Tomcat's classpath or something.
> > >>>> >
> > >>>> > Is this analysis correct ? If so, how to we get around this ?
> > >>>> >
> > >>>> > Regards,
> > >>>> >    Serge Huber.
> > >>>> >
> > >>>> >
> > >>>> >
> > >>>> > - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> > >>>> > www.jahia.org : A collaborative source CMS and Portal Server
> > >>>> >
> > >>>> >
> > >>>> >
> > >>>> > 
> ---------------------------------------------------------------------
> > >>>> > To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> > >>>> > For additional commands, e-mail: 
> jetspeed-dev-help@jakarta.apache.org
> > >>>>
> > >>>>Regards,
> > >>>>--
> > >>>>******************************************
> > >>>>*           Scott T. Weaver              *
> > >>>>*         <we...@apache.org>            *
> > >>>>*     <http://www.einnovation.com>       *
> > >>>>* -------------------------------------- *
> > >>>>*   Apache Jetspeed Enterprise Portal    *
> > >>>>*     Apache Pluto Portlet Container     *
> > >>>>*                                        *
> > >>>>* OpenEditPro, Website Content Mangement *
> > >>>>*     <http://www.openeditpro.com>       *
> > >>>>******************************************
> > >>>>
> > >>>>
> > >>>>---------------------------------------------------------------------
> > >>>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> > >>>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> > >>>
> > >>>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> > >>>www.jahia.org : A collaborative source CMS and Portal Server
> > >>>
> > >>>
> > >>>---------------------------------------------------------------------
> > >>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> > >>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> > >>
> > >>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> > >>www.jahia.org : A collaborative source CMS and Portal Server
> > >>
> > >>
> > >>---------------------------------------------------------------------
> > >>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> > >>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> > >
> > >- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> > >www.jahia.org : A collaborative source CMS and Portal Server
> > >
> > >
> > >---------------------------------------------------------------------
> > >To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> > >For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> >
> > - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> > www.jahia.org : A collaborative source CMS and Portal Server
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> >
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org

- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
www.jahia.org : A collaborative source CMS and Portal Server 



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org


Re: [J2] Using FileSystem PAM from web app class loader

Posted by Scott T Weaver <sc...@binary-designs.net>.
On Mon, 2004-06-21 at 13:46, Serge Huber wrote:
> Found my problem !!
> 
> It's amazing, but it actually explains why the problem was not happening to 
> everybody. It's a problem that only exists with JDK 1.4.2_01 and earlier. 
> It seems that in JDK 1.4.2_02 the implementation of classloading for the 
> factory has changed. Before _02 they used the System class loader, whereas 
> in _02 and later if the class is not found in the system class loader, it 
> then tries in the Thread class loader.

I am using 1.4.2_04-b05 on Mandrake Linux and have the same problem you
and Ate were having.  Hmm, maybe they forgot to fix the Linux dist!

> 
> For more details go to :
> 
> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4788410
> 
> To confirm I upgraded to JDK 1.4.2_04 and I now have the preference factory 
> loading fine.
> 
> Now this begs the question : do we want J2 to require JDK 1.4.2_02 or later 
> or do we need to change the pref api implementation to be more portable ?
> 
> Regards,
>    Serge Huber.
> 
> At 18:59 21.06.2004, you wrote:
> 
> >I forgot to mention my environment :
> >
> >- latest J2 from CVS HEAD, including Ate's properties change
> >- Windows XP SP 1
> >- Sun JDK 1.4.2_01
> >- Tomcat 4.1.30
> >
> >My guess about this problem is that as the JVM's Preferences impl uses the 
> >system class loader (see my previous mail), we cannot access the 
> >PreferencesFactoryImpl which is in a child class loader (the webapp's 
> >class loader). Now I would love to be able to propose a workaround, but 
> >since this seems to be a problem with the JDK's implementation and doesn't 
> >offer an alternate way to set a class loader, I'm not sure there are any 
> >options...
> >
> >Anyway, it might also just be my setup. Can somebody reproduce this problem ?
> >
> >Regards,
> >   Serge Huber.
> >
> >At 18:44 21.06.2004, you wrote:
> >
> >>Scott,
> >>
> >>I did a complete checkout of J2, then :
> >>
> >>allClean
> >>allBuild
> >>quickStart
> >>
> >>and then started Tomcat, here is the log of what happened :
> >>
> >>  INFO: Preparing to deploy portlet app "HW_App"
> >>  INFO: Deploying portlet applicaion WAR demo.war
> >>  INFO: Portlet application deployment target directory is 
> >> C:\java\technologies\jakarta-tomcat\webapps/HW_App
> >>java.lang.InternalError: Can't instantiate Preferences factory 
> >>java.lang.ClassNotFoundException: 
> >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> >>         at 
> >> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
> >>         at 
> >> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
> >>         at 
> >> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> >>         at 
> >> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> >> Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> >> Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> >> Source)
> >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> >>         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
> >>         at 
> >> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
> >>         at 
> >> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
> >>         at 
> >> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
> >>         at 
> >> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
> >>ERROR: Unable to register portlet application, HW_App, through the 
> >>portlet registry: 
> >>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could not
> >>unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
> >>Preferences factory java.lang.ClassNotFoundException: 
> >>org.apache.jetspeed.prefs.impl.Preferenc
> >>esFactoryImpl
> >>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
> >>not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
> >>Preferences factory
> >>  java.lang.ClassNotFoundException: 
> >> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
> >>         at 
> >> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
> >>         at 
> >> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
> >>         at 
> >> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
> >>         at 
> >> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
> >>Caused by: java.lang.InternalError: Can't instantiate Preferences factory 
> >>java.lang.ClassNotFoundException: 
> >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
> >>l
> >>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> >>         at 
> >> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
> >>         at 
> >> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
> >>         at 
> >> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> >>         at 
> >> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> >> Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> >> Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> >> Source)
> >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> >>         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
> >>         ... 9 more
> >>ERROR: Unexpected exception deploying portlet application: 
> >>org.apache.jetspeed.components.portletregistry.RegistryException: Unable 
> >>to register portlet applicat
> >>ion, HW_App, through the portlet registry: 
> >>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
> >>not unmarshal portlet.xml. java.lang.InternalE
> >>rror: Can't instantiate Preferences factory 
> >>java.lang.ClassNotFoundException: 
> >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl attempting rollback...
> >>org.apache.jetspeed.components.portletregistry.RegistryException: Unable 
> >>to register portlet application, HW_App, through the portlet registry: 
> >>org.apache.jetsp
> >>eed.tools.pamanager.PortletApplicationException: Could not unmarshal 
> >>portlet.xml. java.lang.InternalError: Can't instantiate Preferences 
> >>factory java.lang.Class
> >>NotFoundException: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
> >>         at 
> >> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
> >>         at 
> >> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
> >>         at 
> >> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
> >>         at 
> >> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
> >>Caused by: 
> >>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
> >>not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate Preferen
> >>ces factory java.lang.ClassNotFoundException: 
> >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
> >>         ... 7 more
> >>Caused by: java.lang.InternalError: Can't instantiate Preferences factory 
> >>java.lang.ClassNotFoundException: 
> >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
> >>l
> >>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> >>         at 
> >> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
> >>         at 
> >> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
> >>         at 
> >> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> >>         at 
> >> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> >> Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> >> Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> >> Source)
> >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> >>         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
> >>         ... 9 more
> >>  INFO: Exception in deploy. Rollback of application deployment...
> >>  INFO: Rollback: Remove 
> >> C:\java\technologies\jakarta-tomcat\webapps/HW_App and all sub-directories.
> >>ERROR: org.apache.jetspeed.deployment.DeploymentException: Error 
> >>deploying portlet app: 
> >>org.apache.jetspeed.tools.pamanager.PortletApplicationException: org.apa
> >>che.jetspeed.components.portletregistry.RegistryException: Unable to 
> >>register portlet application, HW_App, through the portlet registry: 
> >>org.apache.jetspeed.too
> >>ls.pamanager.PortletApplicationException: Could not unmarshal 
> >>portlet.xml. java.lang.InternalError: Can't instantiate Preferences 
> >>factory java.lang.ClassNotFoun
> >>dException: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>org.apache.jetspeed.deployment.DeploymentException: Error deploying 
> >>portlet app: 
> >>org.apache.jetspeed.tools.pamanager.PortletApplicationException: org.apache.jet
> >>speed.components.portletregistry.RegistryException: Unable to register 
> >>portlet application, HW_App, through the portlet registry: 
> >>org.apache.jetspeed.tools.pama
> >>nager.PortletApplicationException: Could not unmarshal portlet.xml. 
> >>java.lang.InternalError: Can't instantiate Preferences factory 
> >>java.lang.ClassNotFoundExcept
> >>ion: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>         at 
> >> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:128)
> >>         at 
> >> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
> >>         at 
> >> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
> >>         at 
> >> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
> >>Caused by: 
> >>org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
> >>org.apache.jetspeed.components.portletregistry.RegistryException: Unable 
> >>to register
> >>  portlet application, HW_App, through the portlet registry: 
> >> org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
> >> not unmarshal portlet.xml. ja
> >>va.lang.InternalError: Can't instantiate Preferences factory 
> >>java.lang.ClassNotFoundException: 
> >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:319)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
> >>         at 
> >> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
> >>         ... 3 more
> >>Caused by: 
> >>org.apache.jetspeed.components.portletregistry.RegistryException: Unable 
> >>to register portlet application, HW_App, through the portlet registry: org.a
> >>pache.jetspeed.tools.pamanager.PortletApplicationException: Could not 
> >>unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
> >>Preferences factory java
> >>.lang.ClassNotFoundException: 
> >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
> >>         ... 6 more
> >>Caused by: 
> >>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
> >>not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate Preferen
> >>ces factory java.lang.ClassNotFoundException: 
> >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
> >>         at 
> >> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
> >>         ... 7 more
> >>Caused by: java.lang.InternalError: Can't instantiate Preferences factory 
> >>java.lang.ClassNotFoundException: 
> >>org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
> >>l
> >>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> >>         at 
> >> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
> >>         at 
> >> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
> >>         at 
> >> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> >>         at 
> >> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> >> Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> >> Source)
> >>         at 
> >> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> >> Source)
> >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> >>         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
> >>         at 
> >> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
> >>         ... 9 more
> >>  INFO: Loading portlet application from web archive 
> >> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\jetspeed-layouts.war
> >>  INFO: Preparing to deploy portlet app "jetspeed"
> >>  INFO: jetspeed-layouts.war will be registered as a local portlet 
> >> applicaiton.
> >>  INFO: Portlet application deployment target directory is jetspeed/jetspeed
> >>  INFO: Did not load exteneded metadata as it most likely does not 
> >> exist.  org.apache.commons.vfs.FileSystemException: Could not read from 
> >> "jar:file://C:/java/te
> >>chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/jetspeed-portlet.xml" 
> >>because it is a not a file.
> >>  INFO: Loading web.xml into memory....
> >>  INFO: Saving the portlet.xml in the registry...
> >>  INFO: Committing registry changes...
> >>  INFO: FileSystem deployment done.
> >>  INFO: Adding 
> >> jar:file://C:/java/technologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/classes
> >> to class path.
> >>  INFO: Portlet app "jetspeed" successfuly deployed.
> >>  INFO: Loading portlet application from web archive 
> >> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\pam.war
> >>  INFO: Preparing to deploy portlet app "pam"
> >>  INFO: Deploying portlet applicaion WAR pam.war
> >>  INFO: Portlet application deployment target directory is 
> >> C:\java\technologies\jakarta-tomcat\webapps/pam
> >>Writing out infused web.xml for pam
> >>  INFO: Loading web.xml into memory....
> >>  INFO: Saving the portlet.xml in the registry...
> >>  INFO: Committing registry changes...
> >>  INFO: FileSystem deployment done.
> >>  INFO: Catalina deployment response: OK - Application installTe pour le 
> >> chemin de contexte /pam
> >>
> >>  INFO: Portlet app "pam" successfuly deployed.
> >>  INFO: Loading portlet application from web archive 
> >> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\security.war
> >>  INFO: Preparing to deploy portlet app "security"
> >>  INFO: Deploying portlet applicaion WAR security.war
> >>  INFO: Portlet application deployment target directory is 
> >> C:\java\technologies\jakarta-tomcat\webapps/security
> >>Writing out infused web.xml for security
> >>  INFO: Loading web.xml into memory....
> >>  INFO: Saving the portlet.xml in the registry...
> >>  INFO: Committing registry changes...
> >>  INFO: FileSystem deployment done.
> >>  INFO: Catalina deployment response: OK - Application installTe pour le 
> >> chemin de contexte /security
> >>
> >>  INFO: Portlet app "security" successfuly deployed.
> >>  INFO: Loading portlet application from web archive 
> >> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\struts-demo.war
> >>  INFO: Preparing to deploy portlet app "struts-demo"
> >>  INFO: Deploying portlet applicaion WAR struts-demo.war
> >>  INFO: Portlet application deployment target directory is 
> >> C:\java\technologies\jakarta-tomcat\webapps/struts-demo
> >>Writing out infused web.xml for struts-demo
> >>  INFO: Did not load exteneded metadata as it most likely does not 
> >> exist.  org.apache.commons.vfs.FileSystemException: Could not read from 
> >> "jar:file://C:/java/te
> >>chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/struts-demo.war!/WEB-INF/jetspeed-portlet.xml" 
> >>because it is a not a file.
> >>  INFO: Loading web.xml into memory....
> >>  INFO: Saving the portlet.xml in the registry...
> >>  INFO: Committing registry changes...
> >>  INFO: FileSystem deployment done.
> >>  INFO: Catalina deployment response: OK - Application installTe pour le 
> >> chemin de contexte /struts-demo
> >>
> >>  INFO: Portlet app "struts-demo" successfuly deployed.
> >>
> >>So it seems that even within the J2 webapp there is a problem with the 
> >>class loading of the preference factory. What is strange is that some PAs 
> >>deployed, but I guess they don't use any preferences ?
> >>
> >>Regards,
> >>   Serge Huber.
> >>
> >>At 16:43 21.06.2004, you wrote:
> >>
> >>>Hi Scott,
> >>>
> >>>Actually I'm calling the FileSystemPAM from my own deployer, within 
> >>>Jahia. Maybe I'm missing something in my deployment ? I have the 
> >>>jetspeed-prefs*.jar in the WEB-INF/lib directory, along with all of J2, 
> >>>and I updated the assembly script a few hours ago.
> >>>
> >>>I didn't test with auto-deploy, but I could to see if it works better.
> >>>
> >>>Regards,
> >>>   Serge...
> >>>
> >>>At 16:31 21.06.2004, you wrote:
> >>>>Hi Serge,
> >>>>
> >>>>
> >>>>Is this exception coming from auto-deployment?  Because I am not having
> >>>>any issues with deployment.  I made PreferenceProviderImpl Startable so
> >>>>this wouldn't happen, maybe this doesn't address all possible scenarios
> >>>>though.
> >>>>
> >>>>
> >>>>On Mon, 2004-06-21 at 10:23, Serge Huber wrote:
> >>>> > Hi,
> >>>> >
> >>>> > I'm having some problem using the FileSystemPAM from within a web app
> >>>> > context (seems to work in the tests, which use the system class loader).
> >>>> >
> >>>> > Basically I get the following exception :
> >>>> >
> >>>> > java.lang.InternalError: Can't instantiate Preferences factory
> >>>> > java.lang.ClassNotFoundException:
> >>>> > org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >>>> >
> >>>> >          at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> >>>> >          at
> >>>> > 
> >>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
> >>>> >          at
> >>>> > 
> >>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
> >>>> >          at
> >>>> > 
> >>>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
> >>>> >          at 
> >>>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> >>>> >          at 
> >>>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
> >>>> > Source)
> >>>> >          at
> >>>> > 
> >>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown
> >>>> > Source)
> >>>> >          at
> >>>> > 
> >>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> >>>>
> >>>> > Source)
> >>>> >          at
> >>>> > 
> >>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> >>>> > Source)
> >>>> >          at 
> >>>> org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
> >>>> >          at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
> >>>> Source)
> >>>> >          at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >>>> >          at 
> >>>> org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
> >>>> >          at 
> >>>> org.apache.commons.digester.Digester.parse(Digester.java:1586)
> >>>> >          at
> >>>> > 
> >>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
> >>>> >          at
> >>>> > 
> >>>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
> >>>> >          at
> >>>> > 
> >>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
> >>>> >          at
> >>>> > 
> >>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
> >>>> >          at
> >>>> > 
> >>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
> >>>> >
> >>>> > I looked at the JDK's source and found the following code when 
> >>>> loading the
> >>>> > PreferenceFactory implementation :
> >>>> >
> >>>> >              factory = (PreferencesFactory)
> >>>> >                 Class.forName(factoryName, false,
> >>>> > ClassLoader.getSystemClassLoader()).newInstance();
> >>>> >
> >>>> > If this means what I think it does, the preference factory may only be
> >>>> > loaded from the root class loader, which means that we would need to 
> >>>> deploy
> >>>> > the jetspeed-prefs*.jar into Tomcat's classpath or something.
> >>>> >
> >>>> > Is this analysis correct ? If so, how to we get around this ?
> >>>> >
> >>>> > Regards,
> >>>> >    Serge Huber.
> >>>> >
> >>>> >
> >>>> >
> >>>> > - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> >>>> > www.jahia.org : A collaborative source CMS and Portal Server
> >>>> >
> >>>> >
> >>>> >
> >>>> > ---------------------------------------------------------------------
> >>>> > To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> >>>> > For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> >>>>
> >>>>Regards,
> >>>>--
> >>>>******************************************
> >>>>*           Scott T. Weaver              *
> >>>>*         <we...@apache.org>            *
> >>>>*     <http://www.einnovation.com>       *
> >>>>* -------------------------------------- *
> >>>>*   Apache Jetspeed Enterprise Portal    *
> >>>>*     Apache Pluto Portlet Container     *
> >>>>*                                        *
> >>>>* OpenEditPro, Website Content Mangement *
> >>>>*     <http://www.openeditpro.com>       *
> >>>>******************************************
> >>>>
> >>>>
> >>>>---------------------------------------------------------------------
> >>>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> >>>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> >>>
> >>>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> >>>www.jahia.org : A collaborative source CMS and Portal Server
> >>>
> >>>
> >>>---------------------------------------------------------------------
> >>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> >>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> >>
> >>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> >>www.jahia.org : A collaborative source CMS and Portal Server
> >>
> >>
> >>---------------------------------------------------------------------
> >>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> >>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> >
> >- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> >www.jahia.org : A collaborative source CMS and Portal Server
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> >For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> 
> - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> www.jahia.org : A collaborative source CMS and Portal Server 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org


Re: [J2] Using FileSystem PAM from web app class loader

Posted by Serge Huber <sh...@jahia.com>.
Found my problem !!

It's amazing, but it actually explains why the problem was not happening to 
everybody. It's a problem that only exists with JDK 1.4.2_01 and earlier. 
It seems that in JDK 1.4.2_02 the implementation of classloading for the 
factory has changed. Before _02 they used the System class loader, whereas 
in _02 and later if the class is not found in the system class loader, it 
then tries in the Thread class loader.

For more details go to :

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4788410

To confirm I upgraded to JDK 1.4.2_04 and I now have the preference factory 
loading fine.

Now this begs the question : do we want J2 to require JDK 1.4.2_02 or later 
or do we need to change the pref api implementation to be more portable ?

Regards,
   Serge Huber.

At 18:59 21.06.2004, you wrote:

>I forgot to mention my environment :
>
>- latest J2 from CVS HEAD, including Ate's properties change
>- Windows XP SP 1
>- Sun JDK 1.4.2_01
>- Tomcat 4.1.30
>
>My guess about this problem is that as the JVM's Preferences impl uses the 
>system class loader (see my previous mail), we cannot access the 
>PreferencesFactoryImpl which is in a child class loader (the webapp's 
>class loader). Now I would love to be able to propose a workaround, but 
>since this seems to be a problem with the JDK's implementation and doesn't 
>offer an alternate way to set a class loader, I'm not sure there are any 
>options...
>
>Anyway, it might also just be my setup. Can somebody reproduce this problem ?
>
>Regards,
>   Serge Huber.
>
>At 18:44 21.06.2004, you wrote:
>
>>Scott,
>>
>>I did a complete checkout of J2, then :
>>
>>allClean
>>allBuild
>>quickStart
>>
>>and then started Tomcat, here is the log of what happened :
>>
>>  INFO: Preparing to deploy portlet app "HW_App"
>>  INFO: Deploying portlet applicaion WAR demo.war
>>  INFO: Portlet application deployment target directory is 
>> C:\java\technologies\jakarta-tomcat\webapps/HW_App
>>java.lang.InternalError: Can't instantiate Preferences factory 
>>java.lang.ClassNotFoundException: 
>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>         at 
>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
>>         at 
>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
>>         at 
>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>         at 
>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>>         at 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>> Source)
>>         at 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>> Source)
>>         at 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
>> Source)
>>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>>         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
>>         at 
>> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
>>         at 
>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
>>         at 
>> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
>>         at 
>> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
>>         at 
>> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
>>ERROR: Unable to register portlet application, HW_App, through the 
>>portlet registry: 
>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could not
>>unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
>>Preferences factory java.lang.ClassNotFoundException: 
>>org.apache.jetspeed.prefs.impl.Preferenc
>>esFactoryImpl
>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
>>not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
>>Preferences factory
>>  java.lang.ClassNotFoundException: 
>> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172)
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
>>         at 
>> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
>>         at 
>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
>>         at 
>> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
>>         at 
>> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
>>         at 
>> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
>>Caused by: java.lang.InternalError: Can't instantiate Preferences factory 
>>java.lang.ClassNotFoundException: 
>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
>>l
>>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>         at 
>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
>>         at 
>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
>>         at 
>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>         at 
>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>>         at 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>> Source)
>>         at 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>> Source)
>>         at 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
>> Source)
>>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>>         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
>>         ... 9 more
>>ERROR: Unexpected exception deploying portlet application: 
>>org.apache.jetspeed.components.portletregistry.RegistryException: Unable 
>>to register portlet applicat
>>ion, HW_App, through the portlet registry: 
>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
>>not unmarshal portlet.xml. java.lang.InternalE
>>rror: Can't instantiate Preferences factory 
>>java.lang.ClassNotFoundException: 
>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl attempting rollback...
>>org.apache.jetspeed.components.portletregistry.RegistryException: Unable 
>>to register portlet application, HW_App, through the portlet registry: 
>>org.apache.jetsp
>>eed.tools.pamanager.PortletApplicationException: Could not unmarshal 
>>portlet.xml. java.lang.InternalError: Can't instantiate Preferences 
>>factory java.lang.Class
>>NotFoundException: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383)
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
>>         at 
>> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
>>         at 
>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
>>         at 
>> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
>>         at 
>> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
>>         at 
>> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
>>Caused by: 
>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
>>not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate Preferen
>>ces factory java.lang.ClassNotFoundException: 
>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172)
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
>>         ... 7 more
>>Caused by: java.lang.InternalError: Can't instantiate Preferences factory 
>>java.lang.ClassNotFoundException: 
>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
>>l
>>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>         at 
>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
>>         at 
>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
>>         at 
>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>         at 
>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>>         at 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>> Source)
>>         at 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>> Source)
>>         at 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
>> Source)
>>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>>         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
>>         ... 9 more
>>  INFO: Exception in deploy. Rollback of application deployment...
>>  INFO: Rollback: Remove 
>> C:\java\technologies\jakarta-tomcat\webapps/HW_App and all sub-directories.
>>ERROR: org.apache.jetspeed.deployment.DeploymentException: Error 
>>deploying portlet app: 
>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: org.apa
>>che.jetspeed.components.portletregistry.RegistryException: Unable to 
>>register portlet application, HW_App, through the portlet registry: 
>>org.apache.jetspeed.too
>>ls.pamanager.PortletApplicationException: Could not unmarshal 
>>portlet.xml. java.lang.InternalError: Can't instantiate Preferences 
>>factory java.lang.ClassNotFoun
>>dException: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>org.apache.jetspeed.deployment.DeploymentException: Error deploying 
>>portlet app: 
>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: org.apache.jet
>>speed.components.portletregistry.RegistryException: Unable to register 
>>portlet application, HW_App, through the portlet registry: 
>>org.apache.jetspeed.tools.pama
>>nager.PortletApplicationException: Could not unmarshal portlet.xml. 
>>java.lang.InternalError: Can't instantiate Preferences factory 
>>java.lang.ClassNotFoundExcept
>>ion: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>         at 
>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:128)
>>         at 
>> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
>>         at 
>> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
>>         at 
>> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
>>Caused by: 
>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>>org.apache.jetspeed.components.portletregistry.RegistryException: Unable 
>>to register
>>  portlet application, HW_App, through the portlet registry: 
>> org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
>> not unmarshal portlet.xml. ja
>>va.lang.InternalError: Can't instantiate Preferences factory 
>>java.lang.ClassNotFoundException: 
>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:319)
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
>>         at 
>> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
>>         at 
>> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
>>         ... 3 more
>>Caused by: 
>>org.apache.jetspeed.components.portletregistry.RegistryException: Unable 
>>to register portlet application, HW_App, through the portlet registry: org.a
>>pache.jetspeed.tools.pamanager.PortletApplicationException: Could not 
>>unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
>>Preferences factory java
>>.lang.ClassNotFoundException: 
>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383)
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
>>         ... 6 more
>>Caused by: 
>>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
>>not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate Preferen
>>ces factory java.lang.ClassNotFoundException: 
>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172)
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
>>         at 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
>>         ... 7 more
>>Caused by: java.lang.InternalError: Can't instantiate Preferences factory 
>>java.lang.ClassNotFoundException: 
>>org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
>>l
>>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>         at 
>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
>>         at 
>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
>>         at 
>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>         at 
>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
>>         at 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
>> Source)
>>         at 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>> Source)
>>         at 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
>> Source)
>>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>>         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>         at 
>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
>>         ... 9 more
>>  INFO: Loading portlet application from web archive 
>> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\jetspeed-layouts.war
>>  INFO: Preparing to deploy portlet app "jetspeed"
>>  INFO: jetspeed-layouts.war will be registered as a local portlet 
>> applicaiton.
>>  INFO: Portlet application deployment target directory is jetspeed/jetspeed
>>  INFO: Did not load exteneded metadata as it most likely does not 
>> exist.  org.apache.commons.vfs.FileSystemException: Could not read from 
>> "jar:file://C:/java/te
>>chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/jetspeed-portlet.xml" 
>>because it is a not a file.
>>  INFO: Loading web.xml into memory....
>>  INFO: Saving the portlet.xml in the registry...
>>  INFO: Committing registry changes...
>>  INFO: FileSystem deployment done.
>>  INFO: Adding 
>> jar:file://C:/java/technologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/classes 
>> to class path.
>>  INFO: Portlet app "jetspeed" successfuly deployed.
>>  INFO: Loading portlet application from web archive 
>> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\pam.war
>>  INFO: Preparing to deploy portlet app "pam"
>>  INFO: Deploying portlet applicaion WAR pam.war
>>  INFO: Portlet application deployment target directory is 
>> C:\java\technologies\jakarta-tomcat\webapps/pam
>>Writing out infused web.xml for pam
>>  INFO: Loading web.xml into memory....
>>  INFO: Saving the portlet.xml in the registry...
>>  INFO: Committing registry changes...
>>  INFO: FileSystem deployment done.
>>  INFO: Catalina deployment response: OK - Application installTe pour le 
>> chemin de contexte /pam
>>
>>  INFO: Portlet app "pam" successfuly deployed.
>>  INFO: Loading portlet application from web archive 
>> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\security.war
>>  INFO: Preparing to deploy portlet app "security"
>>  INFO: Deploying portlet applicaion WAR security.war
>>  INFO: Portlet application deployment target directory is 
>> C:\java\technologies\jakarta-tomcat\webapps/security
>>Writing out infused web.xml for security
>>  INFO: Loading web.xml into memory....
>>  INFO: Saving the portlet.xml in the registry...
>>  INFO: Committing registry changes...
>>  INFO: FileSystem deployment done.
>>  INFO: Catalina deployment response: OK - Application installTe pour le 
>> chemin de contexte /security
>>
>>  INFO: Portlet app "security" successfuly deployed.
>>  INFO: Loading portlet application from web archive 
>> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\struts-demo.war
>>  INFO: Preparing to deploy portlet app "struts-demo"
>>  INFO: Deploying portlet applicaion WAR struts-demo.war
>>  INFO: Portlet application deployment target directory is 
>> C:\java\technologies\jakarta-tomcat\webapps/struts-demo
>>Writing out infused web.xml for struts-demo
>>  INFO: Did not load exteneded metadata as it most likely does not 
>> exist.  org.apache.commons.vfs.FileSystemException: Could not read from 
>> "jar:file://C:/java/te
>>chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/struts-demo.war!/WEB-INF/jetspeed-portlet.xml" 
>>because it is a not a file.
>>  INFO: Loading web.xml into memory....
>>  INFO: Saving the portlet.xml in the registry...
>>  INFO: Committing registry changes...
>>  INFO: FileSystem deployment done.
>>  INFO: Catalina deployment response: OK - Application installTe pour le 
>> chemin de contexte /struts-demo
>>
>>  INFO: Portlet app "struts-demo" successfuly deployed.
>>
>>So it seems that even within the J2 webapp there is a problem with the 
>>class loading of the preference factory. What is strange is that some PAs 
>>deployed, but I guess they don't use any preferences ?
>>
>>Regards,
>>   Serge Huber.
>>
>>At 16:43 21.06.2004, you wrote:
>>
>>>Hi Scott,
>>>
>>>Actually I'm calling the FileSystemPAM from my own deployer, within 
>>>Jahia. Maybe I'm missing something in my deployment ? I have the 
>>>jetspeed-prefs*.jar in the WEB-INF/lib directory, along with all of J2, 
>>>and I updated the assembly script a few hours ago.
>>>
>>>I didn't test with auto-deploy, but I could to see if it works better.
>>>
>>>Regards,
>>>   Serge...
>>>
>>>At 16:31 21.06.2004, you wrote:
>>>>Hi Serge,
>>>>
>>>>
>>>>Is this exception coming from auto-deployment?  Because I am not having
>>>>any issues with deployment.  I made PreferenceProviderImpl Startable so
>>>>this wouldn't happen, maybe this doesn't address all possible scenarios
>>>>though.
>>>>
>>>>
>>>>On Mon, 2004-06-21 at 10:23, Serge Huber wrote:
>>>> > Hi,
>>>> >
>>>> > I'm having some problem using the FileSystemPAM from within a web app
>>>> > context (seems to work in the tests, which use the system class loader).
>>>> >
>>>> > Basically I get the following exception :
>>>> >
>>>> > java.lang.InternalError: Can't instantiate Preferences factory
>>>> > java.lang.ClassNotFoundException:
>>>> > org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>>> >
>>>> >          at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>>> >          at
>>>> > 
>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
>>>> >          at
>>>> > 
>>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
>>>> >          at
>>>> > 
>>>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
>>>> >          at 
>>>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>>> >          at 
>>>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
>>>> > Source)
>>>> >          at
>>>> > 
>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown
>>>> > Source)
>>>> >          at
>>>> > 
>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>>>>
>>>> > Source)
>>>> >          at
>>>> > 
>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
>>>> > Source)
>>>> >          at 
>>>> org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>>>> >          at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>>>> Source)
>>>> >          at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>>> >          at 
>>>> org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>>>> >          at 
>>>> org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>>> >          at
>>>> > 
>>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
>>>> >          at
>>>> > 
>>>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
>>>> >          at
>>>> > 
>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
>>>> >          at
>>>> > 
>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
>>>> >          at
>>>> > 
>>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
>>>> >
>>>> > I looked at the JDK's source and found the following code when 
>>>> loading the
>>>> > PreferenceFactory implementation :
>>>> >
>>>> >              factory = (PreferencesFactory)
>>>> >                 Class.forName(factoryName, false,
>>>> > ClassLoader.getSystemClassLoader()).newInstance();
>>>> >
>>>> > If this means what I think it does, the preference factory may only be
>>>> > loaded from the root class loader, which means that we would need to 
>>>> deploy
>>>> > the jetspeed-prefs*.jar into Tomcat's classpath or something.
>>>> >
>>>> > Is this analysis correct ? If so, how to we get around this ?
>>>> >
>>>> > Regards,
>>>> >    Serge Huber.
>>>> >
>>>> >
>>>> >
>>>> > - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>>> > www.jahia.org : A collaborative source CMS and Portal Server
>>>> >
>>>> >
>>>> >
>>>> > ---------------------------------------------------------------------
>>>> > To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>> > For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>>>
>>>>Regards,
>>>>--
>>>>******************************************
>>>>*           Scott T. Weaver              *
>>>>*         <we...@apache.org>            *
>>>>*     <http://www.einnovation.com>       *
>>>>* -------------------------------------- *
>>>>*   Apache Jetspeed Enterprise Portal    *
>>>>*     Apache Pluto Portlet Container     *
>>>>*                                        *
>>>>* OpenEditPro, Website Content Mangement *
>>>>*     <http://www.openeditpro.com>       *
>>>>******************************************
>>>>
>>>>
>>>>---------------------------------------------------------------------
>>>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>>
>>>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>>www.jahia.org : A collaborative source CMS and Portal Server
>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>
>>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>www.jahia.org : A collaborative source CMS and Portal Server
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>
>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>www.jahia.org : A collaborative source CMS and Portal Server
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org

- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
www.jahia.org : A collaborative source CMS and Portal Server 



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org


Re: [J2] Using FileSystem PAM from web app class loader

Posted by Serge Huber <sh...@jahia.com>.
I forgot to mention my environment :

- latest J2 from CVS HEAD, including Ate's properties change
- Windows XP SP 1
- Sun JDK 1.4.2_01
- Tomcat 4.1.30

My guess about this problem is that as the JVM's Preferences impl uses the 
system class loader (see my previous mail), we cannot access the 
PreferencesFactoryImpl which is in a child class loader (the webapp's class 
loader). Now I would love to be able to propose a workaround, but since 
this seems to be a problem with the JDK's implementation and doesn't offer 
an alternate way to set a class loader, I'm not sure there are any options...

Anyway, it might also just be my setup. Can somebody reproduce this problem ?

Regards,
   Serge Huber.

At 18:44 21.06.2004, you wrote:

>Scott,
>
>I did a complete checkout of J2, then :
>
>allClean
>allBuild
>quickStart
>
>and then started Tomcat, here is the log of what happened :
>
>  INFO: Preparing to deploy portlet app "HW_App"
>  INFO: Deploying portlet applicaion WAR demo.war
>  INFO: Portlet application deployment target directory is 
> C:\java\technologies\jakarta-tomcat\webapps/HW_App
>java.lang.InternalError: Can't instantiate Preferences factory 
>java.lang.ClassNotFoundException: 
>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>         at 
> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
>         at 
> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
>         at 
> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
>         at 
> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>         at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
> Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
>   Source)
>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
>         at 
> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
>         at 
> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
>         at 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
>         at 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
>         at 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
>         at 
> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
>         at 
> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
>         at 
> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
>         at 
> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
>         at 
> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
>ERROR: Unable to register portlet application, HW_App, through the portlet 
>registry: org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>Could not
>unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
>Preferences factory java.lang.ClassNotFoundException: 
>org.apache.jetspeed.prefs.impl.Preferenc
>esFactoryImpl
>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could not 
>unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
>Preferences factory
>  java.lang.ClassNotFoundException: 
> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>         at 
> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172)
>         at 
> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
>         at 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
>         at 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
>         at 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
>         at 
> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
>         at 
> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
>         at 
> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
>         at 
> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
>         at 
> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
>Caused by: java.lang.InternalError: Can't instantiate Preferences factory 
>java.lang.ClassNotFoundException: 
>org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
>l
>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>         at 
> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
>         at 
> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
>         at 
> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
>         at 
> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>         at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
> Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
>   Source)
>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
>         at 
> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
>         ... 9 more
>ERROR: Unexpected exception deploying portlet application: 
>org.apache.jetspeed.components.portletregistry.RegistryException: Unable 
>to register portlet applicat
>ion, HW_App, through the portlet registry: 
>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could not 
>unmarshal portlet.xml. java.lang.InternalE
>rror: Can't instantiate Preferences factory 
>java.lang.ClassNotFoundException: 
>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl attempting rollback...
>org.apache.jetspeed.components.portletregistry.RegistryException: Unable 
>to register portlet application, HW_App, through the portlet registry: 
>org.apache.jetsp
>eed.tools.pamanager.PortletApplicationException: Could not unmarshal 
>portlet.xml. java.lang.InternalError: Can't instantiate Preferences 
>factory java.lang.Class
>NotFoundException: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>         at 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383)
>         at 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
>         at 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
>         at 
> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
>         at 
> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
>         at 
> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
>         at 
> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
>         at 
> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
>Caused by: 
>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could not 
>unmarshal portlet.xml. java.lang.InternalError: Can't instantiate Preferen
>ces factory java.lang.ClassNotFoundException: 
>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>         at 
> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172)
>         at 
> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
>         at 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
>         ... 7 more
>Caused by: java.lang.InternalError: Can't instantiate Preferences factory 
>java.lang.ClassNotFoundException: 
>org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
>l
>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>         at 
> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
>         at 
> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
>         at 
> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
>         at 
> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>         at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
> Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
>   Source)
>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
>         at 
> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
>         ... 9 more
>  INFO: Exception in deploy. Rollback of application deployment...
>  INFO: Rollback: Remove 
> C:\java\technologies\jakarta-tomcat\webapps/HW_App and all sub-directories.
>ERROR: org.apache.jetspeed.deployment.DeploymentException: Error deploying 
>portlet app: 
>org.apache.jetspeed.tools.pamanager.PortletApplicationException: org.apa
>che.jetspeed.components.portletregistry.RegistryException: Unable to 
>register portlet application, HW_App, through the portlet registry: 
>org.apache.jetspeed.too
>ls.pamanager.PortletApplicationException: Could not unmarshal portlet.xml. 
>java.lang.InternalError: Can't instantiate Preferences factory 
>java.lang.ClassNotFoun
>dException: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>org.apache.jetspeed.deployment.DeploymentException: Error deploying 
>portlet app: 
>org.apache.jetspeed.tools.pamanager.PortletApplicationException: org.apache.jet
>speed.components.portletregistry.RegistryException: Unable to register 
>portlet application, HW_App, through the portlet registry: 
>org.apache.jetspeed.tools.pama
>nager.PortletApplicationException: Could not unmarshal portlet.xml. 
>java.lang.InternalError: Can't instantiate Preferences factory 
>java.lang.ClassNotFoundExcept
>ion: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>         at 
> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:128)
>         at 
> org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
>         at 
> org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
>         at 
> org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
>Caused by: 
>org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
>org.apache.jetspeed.components.portletregistry.RegistryException: Unable 
>to register
>  portlet application, HW_App, through the portlet registry: 
> org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could 
> not unmarshal portlet.xml. ja
>va.lang.InternalError: Can't instantiate Preferences factory 
>java.lang.ClassNotFoundException: 
>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>         at 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:319)
>         at 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
>         at 
> org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
>         at 
> org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
>         ... 3 more
>Caused by: 
>org.apache.jetspeed.components.portletregistry.RegistryException: Unable 
>to register portlet application, HW_App, through the portlet registry: org.a
>pache.jetspeed.tools.pamanager.PortletApplicationException: Could not 
>unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
>Preferences factory java
>.lang.ClassNotFoundException: 
>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>         at 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383)
>         at 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
>         ... 6 more
>Caused by: 
>org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could not 
>unmarshal portlet.xml. java.lang.InternalError: Can't instantiate Preferen
>ces factory java.lang.ClassNotFoundException: 
>org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>         at 
> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172)
>         at 
> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
>         at 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
>         ... 7 more
>Caused by: java.lang.InternalError: Can't instantiate Preferences factory 
>java.lang.ClassNotFoundException: 
>org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
>l
>         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>         at 
> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
>         at 
> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
>         at 
> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
>         at 
> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>         at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
> Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> Source)
>         at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
>   Source)
>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
>         at 
> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
>         ... 9 more
>  INFO: Loading portlet application from web archive 
> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\jetspeed-layouts.war
>  INFO: Preparing to deploy portlet app "jetspeed"
>  INFO: jetspeed-layouts.war will be registered as a local portlet 
> applicaiton.
>  INFO: Portlet application deployment target directory is jetspeed/jetspeed
>  INFO: Did not load exteneded metadata as it most likely does not 
> exist.  org.apache.commons.vfs.FileSystemException: Could not read from 
> "jar:file://C:/java/te
>chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/jetspeed-portlet.xml" 
>because it is a not a file.
>  INFO: Loading web.xml into memory....
>  INFO: Saving the portlet.xml in the registry...
>  INFO: Committing registry changes...
>  INFO: FileSystem deployment done.
>  INFO: Adding 
> jar:file://C:/java/technologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/classes 
> to class path.
>  INFO: Portlet app "jetspeed" successfuly deployed.
>  INFO: Loading portlet application from web archive 
> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\pam.war
>  INFO: Preparing to deploy portlet app "pam"
>  INFO: Deploying portlet applicaion WAR pam.war
>  INFO: Portlet application deployment target directory is 
> C:\java\technologies\jakarta-tomcat\webapps/pam
>Writing out infused web.xml for pam
>  INFO: Loading web.xml into memory....
>  INFO: Saving the portlet.xml in the registry...
>  INFO: Committing registry changes...
>  INFO: FileSystem deployment done.
>  INFO: Catalina deployment response: OK - Application installTe pour le 
> chemin de contexte /pam
>
>  INFO: Portlet app "pam" successfuly deployed.
>  INFO: Loading portlet application from web archive 
> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\security.war
>  INFO: Preparing to deploy portlet app "security"
>  INFO: Deploying portlet applicaion WAR security.war
>  INFO: Portlet application deployment target directory is 
> C:\java\technologies\jakarta-tomcat\webapps/security
>Writing out infused web.xml for security
>  INFO: Loading web.xml into memory....
>  INFO: Saving the portlet.xml in the registry...
>  INFO: Committing registry changes...
>  INFO: FileSystem deployment done.
>  INFO: Catalina deployment response: OK - Application installTe pour le 
> chemin de contexte /security
>
>  INFO: Portlet app "security" successfuly deployed.
>  INFO: Loading portlet application from web archive 
> C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\struts-demo.war
>  INFO: Preparing to deploy portlet app "struts-demo"
>  INFO: Deploying portlet applicaion WAR struts-demo.war
>  INFO: Portlet application deployment target directory is 
> C:\java\technologies\jakarta-tomcat\webapps/struts-demo
>Writing out infused web.xml for struts-demo
>  INFO: Did not load exteneded metadata as it most likely does not 
> exist.  org.apache.commons.vfs.FileSystemException: Could not read from 
> "jar:file://C:/java/te
>chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/struts-demo.war!/WEB-INF/jetspeed-portlet.xml" 
>because it is a not a file.
>  INFO: Loading web.xml into memory....
>  INFO: Saving the portlet.xml in the registry...
>  INFO: Committing registry changes...
>  INFO: FileSystem deployment done.
>  INFO: Catalina deployment response: OK - Application installTe pour le 
> chemin de contexte /struts-demo
>
>  INFO: Portlet app "struts-demo" successfuly deployed.
>
>So it seems that even within the J2 webapp there is a problem with the 
>class loading of the preference factory. What is strange is that some PAs 
>deployed, but I guess they don't use any preferences ?
>
>Regards,
>   Serge Huber.
>
>At 16:43 21.06.2004, you wrote:
>
>>Hi Scott,
>>
>>Actually I'm calling the FileSystemPAM from my own deployer, within 
>>Jahia. Maybe I'm missing something in my deployment ? I have the 
>>jetspeed-prefs*.jar in the WEB-INF/lib directory, along with all of J2, 
>>and I updated the assembly script a few hours ago.
>>
>>I didn't test with auto-deploy, but I could to see if it works better.
>>
>>Regards,
>>   Serge...
>>
>>At 16:31 21.06.2004, you wrote:
>>>Hi Serge,
>>>
>>>
>>>Is this exception coming from auto-deployment?  Because I am not having
>>>any issues with deployment.  I made PreferenceProviderImpl Startable so
>>>this wouldn't happen, maybe this doesn't address all possible scenarios
>>>though.
>>>
>>>
>>>On Mon, 2004-06-21 at 10:23, Serge Huber wrote:
>>> > Hi,
>>> >
>>> > I'm having some problem using the FileSystemPAM from within a web app
>>> > context (seems to work in the tests, which use the system class loader).
>>> >
>>> > Basically I get the following exception :
>>> >
>>> > java.lang.InternalError: Can't instantiate Preferences factory
>>> > java.lang.ClassNotFoundException:
>>> > org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>>> >
>>> >          at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>>> >          at
>>> > 
>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
>>> >          at
>>> > 
>>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
>>> >          at
>>> > 
>>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
>>> >          at 
>>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>>> >          at 
>>> org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
>>> > Source)
>>> >          at
>>> > 
>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown
>>> > Source)
>>> >          at
>>> > 
>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>>>
>>> > Source)
>>> >          at
>>> > 
>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
>>> > Source)
>>> >          at 
>>> org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>>> >          at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>>> Source)
>>> >          at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>> >          at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
>>> Source)
>>> >          at 
>>> org.apache.commons.digester.Digester.parse(Digester.java:1586)
>>> >          at
>>> > 
>>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
>>> >          at
>>> > 
>>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
>>> >          at
>>> > 
>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
>>> >          at
>>> > 
>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
>>> >          at
>>> > 
>>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
>>> >
>>> > I looked at the JDK's source and found the following code when 
>>> loading the
>>> > PreferenceFactory implementation :
>>> >
>>> >              factory = (PreferencesFactory)
>>> >                 Class.forName(factoryName, false,
>>> > ClassLoader.getSystemClassLoader()).newInstance();
>>> >
>>> > If this means what I think it does, the preference factory may only be
>>> > loaded from the root class loader, which means that we would need to 
>>> deploy
>>> > the jetspeed-prefs*.jar into Tomcat's classpath or something.
>>> >
>>> > Is this analysis correct ? If so, how to we get around this ?
>>> >
>>> > Regards,
>>> >    Serge Huber.
>>> >
>>> >
>>> >
>>> > - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>> > www.jahia.org : A collaborative source CMS and Portal Server
>>> >
>>> >
>>> >
>>> > ---------------------------------------------------------------------
>>> > To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>> > For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>>
>>>Regards,
>>>--
>>>******************************************
>>>*           Scott T. Weaver              *
>>>*         <we...@apache.org>            *
>>>*     <http://www.einnovation.com>       *
>>>* -------------------------------------- *
>>>*   Apache Jetspeed Enterprise Portal    *
>>>*     Apache Pluto Portlet Container     *
>>>*                                        *
>>>* OpenEditPro, Website Content Mangement *
>>>*     <http://www.openeditpro.com>       *
>>>******************************************
>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>
>>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>>www.jahia.org : A collaborative source CMS and Portal Server
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>
>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>www.jahia.org : A collaborative source CMS and Portal Server
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org

- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
www.jahia.org : A collaborative source CMS and Portal Server 



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org


Re: [J2] Using FileSystem PAM from web app class loader

Posted by Serge Huber <sh...@jahia.com>.
Scott,

I did a complete checkout of J2, then :

allClean
allBuild
quickStart

and then started Tomcat, here is the log of what happened :

  INFO: Preparing to deploy portlet app "HW_App"
  INFO: Deploying portlet applicaion WAR demo.war
  INFO: Portlet application deployment target directory is 
C:\java\technologies\jakarta-tomcat\webapps/HW_App
java.lang.InternalError: Can't instantiate Preferences factory 
java.lang.ClassNotFoundException: 
org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
         at 
org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
         at 
org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
         at 
org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
         at org.apache.commons.digester.Digester.endElement(Digester.java:1058)
         at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
Source)
         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
         at 
org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
         at 
org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
         at 
org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
         at 
org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
         at 
org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
         at 
org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
         at 
org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
         at 
org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
         at 
org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
         at 
org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
ERROR: Unable to register portlet application, HW_App, through the portlet 
registry: org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
Could not
unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
Preferences factory java.lang.ClassNotFoundException: 
org.apache.jetspeed.prefs.impl.Preferenc
esFactoryImpl
org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could not 
unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
Preferences factory
  java.lang.ClassNotFoundException: 
org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
         at 
org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172)
         at 
org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
         at 
org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
         at 
org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
         at 
org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
         at 
org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
         at 
org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
         at 
org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
         at 
org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
         at 
org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
Caused by: java.lang.InternalError: Can't instantiate Preferences factory 
java.lang.ClassNotFoundException: 
org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
l
         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
         at 
org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
         at 
org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
         at 
org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
         at org.apache.commons.digester.Digester.endElement(Digester.java:1058)
         at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
Source)
         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
         at 
org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
         ... 9 more
ERROR: Unexpected exception deploying portlet application: 
org.apache.jetspeed.components.portletregistry.RegistryException: Unable to 
register portlet applicat
ion, HW_App, through the portlet registry: 
org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could not 
unmarshal portlet.xml. java.lang.InternalE
rror: Can't instantiate Preferences factory 
java.lang.ClassNotFoundException: 
org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl attempting rollback...
org.apache.jetspeed.components.portletregistry.RegistryException: Unable to 
register portlet application, HW_App, through the portlet registry: 
org.apache.jetsp
eed.tools.pamanager.PortletApplicationException: Could not unmarshal 
portlet.xml. java.lang.InternalError: Can't instantiate Preferences factory 
java.lang.Class
NotFoundException: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
         at 
org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383)
         at 
org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
         at 
org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
         at 
org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
         at 
org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
         at 
org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
         at 
org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
         at 
org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
Caused by: org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
Could not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
Preferen
ces factory java.lang.ClassNotFoundException: 
org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
         at 
org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172)
         at 
org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
         at 
org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
         ... 7 more
Caused by: java.lang.InternalError: Can't instantiate Preferences factory 
java.lang.ClassNotFoundException: 
org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
l
         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
         at 
org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
         at 
org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
         at 
org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
         at org.apache.commons.digester.Digester.endElement(Digester.java:1058)
         at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
Source)
         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
         at 
org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
         ... 9 more
  INFO: Exception in deploy. Rollback of application deployment...
  INFO: Rollback: Remove C:\java\technologies\jakarta-tomcat\webapps/HW_App 
and all sub-directories.
ERROR: org.apache.jetspeed.deployment.DeploymentException: Error deploying 
portlet app: 
org.apache.jetspeed.tools.pamanager.PortletApplicationException: org.apa
che.jetspeed.components.portletregistry.RegistryException: Unable to 
register portlet application, HW_App, through the portlet registry: 
org.apache.jetspeed.too
ls.pamanager.PortletApplicationException: Could not unmarshal portlet.xml. 
java.lang.InternalError: Can't instantiate Preferences factory 
java.lang.ClassNotFoun
dException: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
org.apache.jetspeed.deployment.DeploymentException: Error deploying portlet 
app: org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
org.apache.jet
speed.components.portletregistry.RegistryException: Unable to register 
portlet application, HW_App, through the portlet registry: 
org.apache.jetspeed.tools.pama
nager.PortletApplicationException: Could not unmarshal portlet.xml. 
java.lang.InternalError: Can't instantiate Preferences factory 
java.lang.ClassNotFoundExcept
ion: org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
         at 
org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:128)
         at 
org.apache.jetspeed.deployment.DeploymentEventDispatcher.dispatch(DeploymentEventDispatcher.java:64)
         at 
org.apache.jetspeed.deployment.fs.FileSystemScanner.deployNewArtifacts(FileSystemScanner.java:125)
         at 
org.apache.jetspeed.deployment.fs.FileSystemScanner.run(FileSystemScanner.java:88)
Caused by: org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
org.apache.jetspeed.components.portletregistry.RegistryException: Unable to 
register
  portlet application, HW_App, through the portlet registry: 
org.apache.jetspeed.tools.pamanager.PortletApplicationException: Could not 
unmarshal portlet.xml. ja
va.lang.InternalError: Can't instantiate Preferences factory 
java.lang.ClassNotFoundException: 
org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
         at 
org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:319)
         at 
org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
         at 
org.apache.jetspeed.tools.pamanager.CatalinaPAM.deploy(CatalinaPAM.java:76)
         at 
org.apache.jetspeed.deployment.impl.DeployPortletAppEventListener.invoke(DeployPortletAppEventListener.java:114)
         ... 3 more
Caused by: 
org.apache.jetspeed.components.portletregistry.RegistryException: Unable to 
register portlet application, HW_App, through the portlet registry: org.a
pache.jetspeed.tools.pamanager.PortletApplicationException: Could not 
unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
Preferences factory java
.lang.ClassNotFoundException: 
org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
         at 
org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:383)
         at 
org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
         ... 6 more
Caused by: org.apache.jetspeed.tools.pamanager.PortletApplicationException: 
Could not unmarshal portlet.xml. java.lang.InternalError: Can't instantiate 
Preferen
ces factory java.lang.ClassNotFoundException: 
org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
         at 
org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:172)
         at 
org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
         at 
org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
         ... 7 more
Caused by: java.lang.InternalError: Can't instantiate Preferences factory 
java.lang.ClassNotFoundException: 
org.apache.jetspeed.prefs.impl.PreferencesFactoryImp
l
         at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
         at 
org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
         at 
org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
         at 
org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
         at org.apache.commons.digester.Digester.endElement(Digester.java:1058)
         at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
Source)
         at 
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
Source)
         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
         at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
         at org.apache.commons.digester.Digester.parse(Digester.java:1586)
         at 
org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
         ... 9 more
  INFO: Loading portlet application from web archive 
C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\jetspeed-layouts.war
  INFO: Preparing to deploy portlet app "jetspeed"
  INFO: jetspeed-layouts.war will be registered as a local portlet applicaiton.
  INFO: Portlet application deployment target directory is jetspeed/jetspeed
  INFO: Did not load exteneded metadata as it most likely does not 
exist.  org.apache.commons.vfs.FileSystemException: Could not read from 
"jar:file://C:/java/te
chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/jetspeed-portlet.xml" 
because it is a not a file.
  INFO: Loading web.xml into memory....
  INFO: Saving the portlet.xml in the registry...
  INFO: Committing registry changes...
  INFO: FileSystem deployment done.
  INFO: Adding 
jar:file://C:/java/technologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/jetspeed-layouts.war!/WEB-INF/classes 
to class path.
  INFO: Portlet app "jetspeed" successfuly deployed.
  INFO: Loading portlet application from web archive 
C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\pam.war
  INFO: Preparing to deploy portlet app "pam"
  INFO: Deploying portlet applicaion WAR pam.war
  INFO: Portlet application deployment target directory is 
C:\java\technologies\jakarta-tomcat\webapps/pam
Writing out infused web.xml for pam
  INFO: Loading web.xml into memory....
  INFO: Saving the portlet.xml in the registry...
  INFO: Committing registry changes...
  INFO: FileSystem deployment done.
  INFO: Catalina deployment response: OK - Application installTe pour le 
chemin de contexte /pam

  INFO: Portlet app "pam" successfuly deployed.
  INFO: Loading portlet application from web archive 
C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\security.war
  INFO: Preparing to deploy portlet app "security"
  INFO: Deploying portlet applicaion WAR security.war
  INFO: Portlet application deployment target directory is 
C:\java\technologies\jakarta-tomcat\webapps/security
Writing out infused web.xml for security
  INFO: Loading web.xml into memory....
  INFO: Saving the portlet.xml in the registry...
  INFO: Committing registry changes...
  INFO: FileSystem deployment done.
  INFO: Catalina deployment response: OK - Application installTe pour le 
chemin de contexte /security

  INFO: Portlet app "security" successfuly deployed.
  INFO: Loading portlet application from web archive 
C:\java\technologies\jakarta-tomcat\webapps\jetspeed\WEB-INF\deploy\struts-demo.war
  INFO: Preparing to deploy portlet app "struts-demo"
  INFO: Deploying portlet applicaion WAR struts-demo.war
  INFO: Portlet application deployment target directory is 
C:\java\technologies\jakarta-tomcat\webapps/struts-demo
Writing out infused web.xml for struts-demo
  INFO: Did not load exteneded metadata as it most likely does not 
exist.  org.apache.commons.vfs.FileSystemException: Could not read from 
"jar:file://C:/java/te
chnologies/jakarta-tomcat/webapps/jetspeed/WEB-INF/deploy/struts-demo.war!/WEB-INF/jetspeed-portlet.xml" 
because it is a not a file.
  INFO: Loading web.xml into memory....
  INFO: Saving the portlet.xml in the registry...
  INFO: Committing registry changes...
  INFO: FileSystem deployment done.
  INFO: Catalina deployment response: OK - Application installTe pour le 
chemin de contexte /struts-demo

  INFO: Portlet app "struts-demo" successfuly deployed.

So it seems that even within the J2 webapp there is a problem with the 
class loading of the preference factory. What is strange is that some PAs 
deployed, but I guess they don't use any preferences ?

Regards,
   Serge Huber.

At 16:43 21.06.2004, you wrote:

>Hi Scott,
>
>Actually I'm calling the FileSystemPAM from my own deployer, within Jahia. 
>Maybe I'm missing something in my deployment ? I have the 
>jetspeed-prefs*.jar in the WEB-INF/lib directory, along with all of J2, 
>and I updated the assembly script a few hours ago.
>
>I didn't test with auto-deploy, but I could to see if it works better.
>
>Regards,
>   Serge...
>
>At 16:31 21.06.2004, you wrote:
>>Hi Serge,
>>
>>
>>Is this exception coming from auto-deployment?  Because I am not having
>>any issues with deployment.  I made PreferenceProviderImpl Startable so
>>this wouldn't happen, maybe this doesn't address all possible scenarios
>>though.
>>
>>
>>On Mon, 2004-06-21 at 10:23, Serge Huber wrote:
>> > Hi,
>> >
>> > I'm having some problem using the FileSystemPAM from within a web app
>> > context (seems to work in the tests, which use the system class loader).
>> >
>> > Basically I get the following exception :
>> >
>> > java.lang.InternalError: Can't instantiate Preferences factory
>> > java.lang.ClassNotFoundException:
>> > org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
>> >
>> >          at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>> >          at
>> > 
>> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
>> >          at
>> > 
>> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
>> >          at
>> > 
>> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
>> >          at 
>> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>> >          at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
>> > Source)
>> >          at
>> > 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown
>> > Source)
>> >          at
>> > 
>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>>
>> > Source)
>> >          at
>> > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
>> > Source)
>> >          at org.apache.xerces.parsers.XML11Configuration.parse(Unknown 
>> Source)
>> >          at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
>> Source)
>> >          at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>> >          at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
>> Source)
>> >          at org.apache.commons.digester.Digester.parse(Digester.java:1586)
>> >          at
>> > 
>> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
>> >          at
>> > 
>> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
>> >          at
>> > 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
>> >          at
>> > 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
>> >          at
>> > 
>> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
>> >
>> > I looked at the JDK's source and found the following code when loading the
>> > PreferenceFactory implementation :
>> >
>> >              factory = (PreferencesFactory)
>> >                 Class.forName(factoryName, false,
>> > ClassLoader.getSystemClassLoader()).newInstance();
>> >
>> > If this means what I think it does, the preference factory may only be
>> > loaded from the root class loader, which means that we would need to 
>> deploy
>> > the jetspeed-prefs*.jar into Tomcat's classpath or something.
>> >
>> > Is this analysis correct ? If so, how to we get around this ?
>> >
>> > Regards,
>> >    Serge Huber.
>> >
>> >
>> >
>> > - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>> > www.jahia.org : A collaborative source CMS and Portal Server
>> >
>> >
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>> > For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>>
>>Regards,
>>--
>>******************************************
>>*           Scott T. Weaver              *
>>*         <we...@apache.org>            *
>>*     <http://www.einnovation.com>       *
>>* -------------------------------------- *
>>*   Apache Jetspeed Enterprise Portal    *
>>*     Apache Pluto Portlet Container     *
>>*                                        *
>>* OpenEditPro, Website Content Mangement *
>>*     <http://www.openeditpro.com>       *
>>******************************************
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>
>- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
>www.jahia.org : A collaborative source CMS and Portal Server
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org

- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
www.jahia.org : A collaborative source CMS and Portal Server 



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org


Re: [J2] Using FileSystem PAM from web app class loader

Posted by Serge Huber <sh...@jahia.com>.
Hi Scott,

Actually I'm calling the FileSystemPAM from my own deployer, within Jahia. 
Maybe I'm missing something in my deployment ? I have the 
jetspeed-prefs*.jar in the WEB-INF/lib directory, along with all of J2, and 
I updated the assembly script a few hours ago.

I didn't test with auto-deploy, but I could to see if it works better.

Regards,
   Serge...

At 16:31 21.06.2004, you wrote:
>Hi Serge,
>
>
>Is this exception coming from auto-deployment?  Because I am not having
>any issues with deployment.  I made PreferenceProviderImpl Startable so
>this wouldn't happen, maybe this doesn't address all possible scenarios
>though.
>
>
>On Mon, 2004-06-21 at 10:23, Serge Huber wrote:
> > Hi,
> >
> > I'm having some problem using the FileSystemPAM from within a web app
> > context (seems to work in the tests, which use the system class loader).
> >
> > Basically I get the following exception :
> >
> > java.lang.InternalError: Can't instantiate Preferences factory
> > java.lang.ClassNotFoundException:
> > org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> >
> >          at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
> >          at
> > 
> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
> >          at
> > 
> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
> >          at
> > 
> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
> >          at 
> org.apache.commons.digester.Digester.endElement(Digester.java:1058)
> >          at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
> > Source)
> >          at
> > 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown
> > Source)
> >          at
> > 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
>
> > Source)
> >          at
> > org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> > Source)
> >          at org.apache.xerces.parsers.XML11Configuration.parse(Unknown 
> Source)
> >          at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown 
> Source)
> >          at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
> >          at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown 
> Source)
> >          at org.apache.commons.digester.Digester.parse(Digester.java:1586)
> >          at
> > 
> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
> >          at
> > 
> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
> >          at
> > 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
> >          at
> > 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
> >          at
> > 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
> >
> > I looked at the JDK's source and found the following code when loading the
> > PreferenceFactory implementation :
> >
> >              factory = (PreferencesFactory)
> >                 Class.forName(factoryName, false,
> > 
> ClassLoader.getSystemClassLoader()).newInstance();
> >
> > If this means what I think it does, the preference factory may only be
> > loaded from the root class loader, which means that we would need to 
> deploy
> > the jetspeed-prefs*.jar into Tomcat's classpath or something.
> >
> > Is this analysis correct ? If so, how to we get around this ?
> >
> > Regards,
> >    Serge Huber.
> >
> >
> >
> > - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> > www.jahia.org : A collaborative source CMS and Portal Server
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org
>
>Regards,
>--
>******************************************
>*           Scott T. Weaver              *
>*         <we...@apache.org>            *
>*     <http://www.einnovation.com>       *
>* -------------------------------------- *
>*   Apache Jetspeed Enterprise Portal    *
>*     Apache Pluto Portlet Container     *
>*                                        *
>* OpenEditPro, Website Content Mangement *
>*     <http://www.openeditpro.com>       *
>******************************************
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org

- -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
www.jahia.org : A collaborative source CMS and Portal Server 



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org


Re: [J2] Using FileSystem PAM from web app class loader

Posted by Scott T Weaver <sc...@binary-designs.net>.
Hi Serge,


Is this exception coming from auto-deployment?  Because I am not having
any issues with deployment.  I made PreferenceProviderImpl Startable so
this wouldn't happen, maybe this doesn't address all possible scenarios
though.


On Mon, 2004-06-21 at 10:23, Serge Huber wrote:
> Hi,
> 
> I'm having some problem using the FileSystemPAM from within a web app 
> context (seems to work in the tests, which use the system class loader).
> 
> Basically I get the following exception :
> 
> java.lang.InternalError: Can't instantiate Preferences factory 
> java.lang.ClassNotFoundException: 
> org.apache.jetspeed.prefs.impl.PreferencesFactoryImpl
> 
>          at java.util.prefs.Preferences.<clinit>(Preferences.java:204)
>          at 
> org.apache.jetspeed.om.preference.impl.PrefsPreference.createPrefenceNode(PrefsPreference.java:540)
>          at 
> org.apache.jetspeed.om.preference.impl.PrefsPreference.<init>(PrefsPreference.java:73)
>          at 
> org.apache.jetspeed.util.descriptor.PortletPreferenceRule.end(PortletPreferenceRule.java:74)
>          at org.apache.commons.digester.Digester.endElement(Digester.java:1058)
>          at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown 
> Source)
>          at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown 
> Source)
>          at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown 
> Source)
>          at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> Source)
>          at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>          at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
>          at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>          at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>          at org.apache.commons.digester.Digester.parse(Digester.java:1586)
>          at 
> org.apache.jetspeed.util.descriptor.PortletApplicationDescriptor.createPortletApplication(PortletApplicationDescriptor.java:146)
>          at 
> org.apache.jetspeed.util.descriptor.PortletApplicationWar.createPortletApp(PortletApplicationWar.java:213)
>          at 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.registerApplication(FileSystemPAM.java:346)
>          at 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.sysDeploy(FileSystemPAM.java:297)
>          at 
> org.apache.jetspeed.tools.pamanager.FileSystemPAM.deploy(FileSystemPAM.java:89)
> 
> I looked at the JDK's source and found the following code when loading the 
> PreferenceFactory implementation :
> 
>              factory = (PreferencesFactory)
>                 Class.forName(factoryName, false,
>                               ClassLoader.getSystemClassLoader()).newInstance();
> 
> If this means what I think it does, the preference factory may only be 
> loaded from the root class loader, which means that we would need to deploy 
> the jetspeed-prefs*.jar into Tomcat's classpath or something.
> 
> Is this analysis correct ? If so, how to we get around this ?
> 
> Regards,
>    Serge Huber.
> 
> 
> 
> - -- --- -----=[ shuber2 at jahia dot com ]=---- --- -- -
> www.jahia.org : A collaborative source CMS and Portal Server 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org

Regards,
-- 
******************************************
*           Scott T. Weaver              *
*         <we...@apache.org>            *
*     <http://www.einnovation.com>       *   
* -------------------------------------- *
*   Apache Jetspeed Enterprise Portal    *
*     Apache Pluto Portlet Container     *
*                                        *
* OpenEditPro, Website Content Mangement *
*     <http://www.openeditpro.com>       *
******************************************


---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org