[ 
https://issues.apache.org/jira/browse/APA-9?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Randy Watler resolved APA-9.
----------------------------

    Resolution: Fixed

This issue has been resolved by the introduction of the apa-logging component 
and use of a system property set in the container/global scope to eliminate any 
webapp race conditions and/or platform webapp initialization order artifacts. 
Here is the original proposal:

Goals:

1. Simplify log configuration in portlet applications via preconfigured 
system properties setup in container scope, (resolving JIRA issue APA-9).

2. Provide a technique that allows administrators with access to the 
portal web application container configuration to simply relocate log 
files outside expanded war file directories.

3. Maintain separate log files per portlet application and portal so 
that originating application code can be determined.

4. Avoid container/portal logging implementation requirements and class 
path pollution so that portlet applications are able to utilize a 
logging implementation of choice.

5. Provide a "zero-configuration" for Jetspeed demo, installer, and 
developer build environments.

Proposed Solution:

1. Configure portlet application logging using a well known system 
property as directory for logging, (i.e. 'org.apache.portals.logdir').

2. By convention, require that all portlet applications write to log 
files with names prefixed by application name.

3. Provide a Tomcat 5.5 and Tomcat 6.0 compatible server listener class 
implementation that will dynamically set the logging directory system 
property before the portlet applications are started to the default 
Tomcat ./logs or specified directory.

4. Implement a deployment extension to the Jetspeed Maven plugins that 
configures the Tomcat 5.5 or Tomcat 6.0 server.xml file to add the 
required <Listener/> tag as a child of the <Engine/> tags, (if not 
already specified).

5. Extend the Jetspeed Maven deployment plugin configuration to add a 
jar, (jetspeed-logging), containing the listener to the Tomcat 
./server/lib directory for 5.5 or ./lib directory for 6.0.

6. Initially document how to set the logging directory property for 
other web containers as part of the manual deployment process for 
Jetspeed and Portals Applications that conform to this approach.

7. Encourage contribution of similar auto configuration plugins for 
other web container implementations.

This proposal was implemented as proposed in APA and J2, svn commits: 
774028-774070.

> Logging execptions on Tomcat 5.5 startup: cannot find /logs/pa.log
> ------------------------------------------------------------------
>
>                 Key: APA-9
>                 URL: https://issues.apache.org/jira/browse/APA-9
>             Project: Portals Apps
>          Issue Type: Bug
>    Affects Versions: apa-demo-1.0
>         Environment: Jetspeed 2.2, Tomcat 5.5.2[78], JDK 1.5, Linux
> (issue does not appear in Tomcat 6.0.18)
>            Reporter: Randy Watler
>            Assignee: Randy Watler
>            Priority: Minor
>             Fix For: apa-demo-1.0
>
>
> The following exceptions are thrown into catalina.out on container startup 
> for demo and webcontent apps:
> May 7, 2009 12:08:28 AM org.apache.catalina.startup.HostConfig deployWAR
> INFO: Deploying web application archive webcontent.war
> log4j:ERROR setFile(null,false) call failed.
> java.io.FileNotFoundException: /logs/pa.log (No such file or directory)
>         at java.io.FileOutputStream.open(Native Method)
>         at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
>         at java.io.FileOutputStream.<init>(FileOutputStream.java:102)
>         at org.apache.log4j.FileAppender.setFile(FileAppender.java:289)
>         at 
> org.apache.log4j.FileAppender.activateOptions(FileAppender.java:163)
>         at 
> org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:256)
>         at 
> org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:132)
>         at 
> org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:96)
>         at 
> org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:654)
>         at 
> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:612)
>         at 
> org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:509)
>         at 
> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:415)
>         at 
> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:441)
>         at 
> org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:470)
>         at org.apache.log4j.LogManager.<clinit>(LogManager.java:122)
>         at 
> org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:73)
>         at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:209)
>         at 
> org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155)
>         at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:704)
>         at 
> org.apache.catalina.core.ContainerBase.getLogger(ContainerBase.java:381)
>         at 
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4119)
>         at 
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
>         at 
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
>         at 
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
>         at 
> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:831)
>         at 
> org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:720)
>         at 
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
>         at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1150)
>         at 
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
>         at 
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
>         at 
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
>         at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
>         at 
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
>         at 
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
>         at 
> org.apache.catalina.core.StandardService.start(StandardService.java:448)
>         at 
> org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
>         at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
>         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:585)
>         at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
>         at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
> log4j:ERROR setFile(null,false) call failed.
> java.io.FileNotFoundException: /logs/velocity.log (No such file or directory)
>         at java.io.FileOutputStream.open(Native Method)
>         at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
>         at java.io.FileOutputStream.<init>(FileOutputStream.java:102)
>         at org.apache.log4j.FileAppender.setFile(FileAppender.java:289)
>         at 
> org.apache.log4j.FileAppender.activateOptions(FileAppender.java:163)
>         at 
> org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:256)
>         at 
> org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:132)
>         at 
> org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:96)
>         at 
> org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:654)
>         at 
> org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:612)
>         at 
> org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:533)
>         at 
> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:417)
>         at 
> org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:441)
>         at 
> org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:470)
>         at org.apache.log4j.LogManager.<clinit>(LogManager.java:122)
>         at 
> org.slf4j.impl.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:73)
>         at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:209)
>         at 
> org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155)
>         at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:704)
>         at 
> org.apache.catalina.core.ContainerBase.getLogger(ContainerBase.java:381)
>         at 
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4119)
>         at 
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
>         at 
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
>         at 
> org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
>         at 
> org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:831)
>         at 
> org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:720)
>         at 
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
>         at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1150)
>         at 
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
>         at 
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
>         at 
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
>         at org.apache.catalina.core.StandardHost.start(StandardHost.java:736)
>         at 
> org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
>         at 
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
>         at 
> org.apache.catalina.core.StandardService.start(StandardService.java:448)
>         at 
> org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
>         at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
>         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:585)
>         at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
>         at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to