Accessibility

TechNote (Archived)

Log4j error on Flex startup

If conflicting versions of the log4j.jar file are present in the application server classpath for Flex, anIllegalArgumentException will be logged when starting the server.

The Flex application uses the Apache Group's log4j tool to provide its logging services. The specific file required by Flex is located in \flex\WEB-INF\flex\jars (currently "log4j-1.2.8.jar"). If an alternate version of log4j.jar is present in the system classpath (possibly due to the installation of additional applications), this could cause Flex to use an incorrect jar file. The result will be an IllegalArgumentException being logged to the console or the application server log file, as follows:

log4j:WARN Failed to set property [threshold] to value"INFO".
log4j:WARN No such property [encoding] in org.apache.log4j.RollingFileAppender.
log4j:WARN Failed to set property [file] to value "C:\Program Files\Macromedia\Flex\jrun4\ servers\default\samples\WEB-INF\flex\logs\flex.log".
java.lang.IllegalArgumentException: object is not an instance of declaring class
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.log4j.config.PropertySetter.setProperty(PropertySetter.java:196)
at org.apache.log4j.config.PropertySetter.setProperty(PropertySetter.java:155)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:120)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:87)
at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:645)
at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:603)
at org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:524)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:408)
at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:340)
at flex.core.logging.Logger.initializeLogger(Logger.java:49)
at flex.core.J2EEServiceImpl.setupLogger(J2EEServiceImpl.java:74)
at flex.core.FlexService.start(FlexService.java:23)
at flex.detection.DetectionFilter.setupFlexService(DetectionFilter.java:59)
at flex.detection.DetectionFilter.init(DetectionFilter.java:49)
at flex.bootstrap.BootstrapFilter.init(BootstrapFilter.java:40)
at jrun.servlet.FilterObject.init(FilterObject.java:63)
at jrun.servlet.FilterManager.loadFilter(FilterManager.java:195)
at jrun.servlet.FilterManager.init(FilterManager.java:155)
at jrun.servlet.FilterManager.create(FilterManager.java:74)
at jrun.servlet.WebApplicationService.start(WebApplicationService.java:223)
at jrun.deployment.DeployerService.initModules(DeployerService.java:710)
at jrun.deployment.DeployerService.createWatchedDeployment(DeployerService.java:242)
at jrun.deployment.DeployerService.deploy(DeployerService.java:430)
at jrun.deployment.DeployerService.checkWatchedDirectories(DeployerService.java:179)
at jrun.deployment.DeployerService.run(DeployerService.java:891)
at jrunx.scheduler.SchedulerService.invokeRunnable(SchedulerService.java:223)
at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:451)
at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
log4j:WARN Failed to set property [maxFileSize] to value"200KB".
java.lang.IllegalArgumentException: object is not an instance of declaring class
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.log4j.config.PropertySetter.setProperty(PropertySetter.java:196)
at org.apache.log4j.config.PropertySetter.setProperty(PropertySetter.java:155)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:120)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:87)
at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:645)
at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:603)
at org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:524)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:408)
at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:340)
at flex.core.logging.Logger.initializeLogger(Logger.java:49)
at flex.core.J2EEServiceImpl.setupLogger(J2EEServiceImpl.java:74)
at flex.core.FlexService.start(FlexService.java:23)
at flex.detection.DetectionFilter.setupFlexService(DetectionFilter.java:59)
at flex.detection.DetectionFilter.init(DetectionFilter.java:49)
at flex.bootstrap.BootstrapFilter.init(BootstrapFilter.java:40)
at jrun.servlet.FilterObject.init(FilterObject.java:63)
at jrun.servlet.FilterManager.loadFilter(FilterManager.java:195)
at jrun.servlet.FilterManager.init(FilterManager.java:155)
at jrun.servlet.FilterManager.create(FilterManager.java:74)
at jrun.servlet.WebApplicationService.start(WebApplicationService.java:223)
at jrun.deployment.DeployerService.initModules(DeployerService.java:710)
at jrun.deployment.DeployerService.createWatchedDeployment(DeployerService.java:242)
at jrun.deployment.DeployerService.deploy(DeployerService.java:430)
at jrun.deployment.DeployerService.checkWatchedDirectories(DeployerService.java:179)
at jrun.deployment.DeployerService.run(DeployerService.java:891)
at jrunx.scheduler.SchedulerService.invokeRunnable(SchedulerService.java:223)
at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:451)
at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
log4j:WARN Failed to set property [maxBackupIndex] to value"3".
java.lang.IllegalArgumentException: object is not an instance of declaring class
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.log4j.config.PropertySetter.setProperty(PropertySetter.java:196)
at org.apache.log4j.config.PropertySetter.setProperty(PropertySetter.java:155)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:120)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:87)
at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:645)
at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:603)
at org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:524)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:408)
at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:340)
at flex.core.logging.Logger.initializeLogger(Logger.java:49)
at flex.core.J2EEServiceImpl.setupLogger(J2EEServiceImpl.java:74)
at flex.core.FlexService.start(FlexService.java:23)
at flex.detection.DetectionFilter.setupFlexService(DetectionFilter.java:59)
at flex.detection.DetectionFilter.init(DetectionFilter.java:49)
at flex.bootstrap.BootstrapFilter.init(BootstrapFilter.java:40)
at jrun.servlet.FilterObject.init(FilterObject.java:63)
at jrun.servlet.FilterManager.loadFilter(FilterManager.java:195)
at jrun.servlet.FilterManager.init(FilterManager.java:155)
at jrun.servlet.FilterManager.create(FilterManager.java:74)
at jrun.servlet.WebApplicationService.start(WebApplicationService.java:223)
at jrun.deployment.DeployerService.initModules(DeployerService.java:710)
at jrun.deployment.DeployerService.createWatchedDeployment(DeployerService.java:242)
at jrun.deployment.DeployerService.deploy(DeployerService.java:430)
at jrun.deployment.DeployerService.checkWatchedDirectories(DeployerService.java:179)
at jrun.deployment.DeployerService.run(DeployerService.java:891)
at jrunx.scheduler.SchedulerService.invokeRunnable(SchedulerService.java:223)
at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:451)
at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)
log4j:WARN File option not set for appender [F1].
log4j:WARN Are you using FileAppender instead of ConsoleAppender?
03/18 22:32:12 WARN The Flex 1.0 Trial Edition evaluation period will expire in 46 days.
log4j:ERROR No output stream or file set for the appender named [F1].

In addition to logging this error, the Flex server may not start. To resolve this problem, the conflicting log4j.jar file must be removed from the application server's classpath. If you are using the log4j jar file in a separate J2EE application, Macromedia recommends relocating the jar file to the /WEB-INF/lib directory of your application instead of the server's classpath. This isolates the conflicting jar file to the specific application that requires it, rather than installing it at a global level.

If you are using JRun as your J2EE application server, the classpath can be adjusted by modifying the {jrun-root}\bin\jvm.config file. The following steps will help you identify and remove the entry.

  1. Examine the java.class.path to see if the log4j.jar was explicitly placed in the classpath.
  2. Check the {jrun-root}\servers\lib directory for the log4j.jar.
  3. If you used the J2EE install of ColdFusion MX 6.1, the jvm.config file will contain references to the /WEB-INF/cfusion/lib directory in the classpath property. To fix this problem, remove the entry {application.home}/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/cfusion/lib from the java.class.path entry.

If you are using another application server, examine your J2EE server's documentation for instructions on how to modify the classpath.

AlertThis content requires Flash

To view this content, JavaScript must be enabled, and you need the latest version of the Adobe Flash Player.

Download the free Flash Player now!

Get Adobe Flash Player

Creative Commons License

Search Support


Document Details

ID:tn_19249
Browser:Chrome
Internet Explorer
Netscape
Opera
Safari
Firefox
Database:DB2
Informix
MySQL
Oracle
SQL Server
Sybase
MS Access

Products Affected: