Fórumok

Hooks throwing exception

thumbnail
Vishal G, módosítva 13 év-val korábban

Hooks throwing exception

New Member Bejegyzések: 9 Csatlakozás dátuma: 2010.06.10. Legújabb bejegyzések
Hi,

I got following exception on hot deploying hook. Can any one help me to identify the issue

log4j:ERROR Could not create an Appender. Reported error follows.
java.lang.ClassCastException: org.apache.log4j.ConsoleAppender cannot be cast to org.apache.log4j.Appender
at org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:175)
at org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.java:150)
at org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java:163)
at org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOMConfigurator.java:425)
at org.apache.log4j.xml.DOMConfigurator.parseRoot(DOMConfigurator.java:394)
at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:829)
at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:712)
at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:618)
at org.apache.log4j.xml.DOMConfigurator.configure(DOMConfigurator.java:743)
at com.liferay.util.log4j.Log4JUtil.configureLog4J(Log4JUtil.java:48)
at com.liferay.portal.deploy.hot.HookHotDeployListener.initLogger(HookHotDeployListener.java:1105)
at com.liferay.portal.deploy.hot.HookHotDeployListener.doInvokeDeploy(HookHotDeployListener.java:401)
at com.liferay.portal.deploy.hot.HookHotDeployListener.invokeDeploy(HookHotDeployListener.java:218)
at com.liferay.portal.kernel.deploy.hot.HotDeployUtil._doFireDeployEvent(HotDeployUtil.java:109)
at com.liferay.portal.kernel.deploy.hot.HotDeployUtil._fireDeployEvent(HotDeployUtil.java:182)
at com.liferay.portal.kernel.deploy.hot.HotDeployUtil.fireDeployEvent(HotDeployUtil.java:38)
at com.liferay.portal.kernel.servlet.HookContextListener.contextInitialized(HookContextListener.java:36)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3972)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4467)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:964)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1345)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:303)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1337)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
at java.lang.Thread.run(Thread.java:619)
log4j:ERROR Could not parse url [jar:file:<<myserverlocation>>/liferay-portal-tomcat-6.0.5/liferay-portal-6.0.5/tomcat-6.0.26/webapps/<<myhook>>/WEB-INF/lib/portal-impl.jar!/META-INF/portal-log4j.xml].
java.lang.NullPointerException
at java.util.Hashtable.put(Hashtable.java:394)
at org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.java:151)
at org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java:163)
at org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOMConfigurator.java:425)
at org.apache.log4j.xml.DOMConfigurator.parseRoot(DOMConfigurator.java:394)
at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:829)
at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:712)
at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:618)
at org.apache.log4j.xml.DOMConfigurator.configure(DOMConfigurator.java:743)
at com.liferay.util.log4j.Log4JUtil.configureLog4J(Log4JUtil.java:48)
at com.liferay.portal.deploy.hot.HookHotDeployListener.initLogger(HookHotDeployListener.java:1105)
at com.liferay.portal.deploy.hot.HookHotDeployListener.doInvokeDeploy(HookHotDeployListener.java:401)
at com.liferay.portal.deploy.hot.HookHotDeployListener.invokeDeploy(HookHotDeployListener.java:218)
at com.liferay.portal.kernel.deploy.hot.HotDeployUtil._doFireDeployEvent(HotDeployUtil.java:109)
at com.liferay.portal.kernel.deploy.hot.HotDeployUtil._fireDeployEvent(HotDeployUtil.java:182)
at com.liferay.portal.kernel.deploy.hot.HotDeployUtil.fireDeployEvent(HotDeployUtil.java:38)
at com.liferay.portal.kernel.servlet.HookContextListener.contextInitialized(HookContextListener.java:36)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3972)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4467)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:964)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1345)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:303)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1337)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
at java.lang.Thread.run(Thread.java:619)
Loading file:<<myserverlocation>>/liferay-portal-6.0.5/tomcat-6.0.26/webapps/<<myhook>>/WEB-INF/classes/portal.properties
log4j:WARN No appenders could be found for logger (com.liferay.portal.deploy.hot.HookHotDeployListener).
log4j:WARN Please initialize the log4j system properly.
Loading file:<<myserverlocation>>/liferay-portal-tomcat-6.0.5/liferay-portal-6.0.5/tomcat-6.0.26/webapps/chat-portlet/WEB-INF/classes/portlet.properties

Thanks in advance
Vishal G
Prashanth Veldhi, módosítva 13 év-val korábban

RE: Hooks throwing exception

New Member Bejegyzések: 5 Csatlakozás dátuma: 2010.12.10. Legújabb bejegyzések
seems like problem with ClassLoaders...
WorkAround is to remove the Log4.jar copied into hooks war (WEB-INF/lib) during deployment.
thumbnail
Adolfo Enrique Benedetti, módosítva 13 év-val korábban

RE: Hooks throwing exception

Junior Member Bejegyzések: 45 Csatlakozás dátuma: 2009.06.04. Legújabb bejegyzések
You can use the liferay log;

....
import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;
.....
public class MyListener extends BaseModelListener<group> {
private static Log _log = LogFactoryUtil.getLog(MyListener.class);
......
  @Override
  public void onAfterCreate(Group group) throws ModelListenerException {
    _log.info("### onAfterCreateGroup ###");
.......</group>


This works in a hook on liferay 6.0.5
thumbnail
Bla Bla, módosítva 13 év-val korábban

RE: Hooks throwing exception

Junior Member Bejegyzések: 79 Csatlakozás dátuma: 2010.12.22. Legújabb bejegyzések
Hi,

I'm getting a logger ina hook the way you described :

private static final Log LOGGER = LogFactoryUtil
			.getLog(EspaceClientsEchangesAuth.class);


This works fine for all the people in my team....except one !
He's getting a noClassDefFound when I try to log something :


LOGGER.info("Appel de authenticateByScreenName...");


throws :

java.lang.NoClassDefFoundError: com/liferay/portal/kernel/log/Log


Looks like a classloader issue, but I can't see any difference between his configuration and the one s of the other developers in the team.

Any help much appreciated !

Thank you,

Mathieu.
Joost Timmerman, módosítva 12 év-val korábban

RE: Hooks throwing exception

New Member Bejegyzések: 12 Csatlakozás dátuma: 2011.02.14. Legújabb bejegyzések
I seem to be having the same issue. I'm overriding the Liferay auth with my own; using the ext-plugin.

When i try to login i get a Tomcat 500 error

3-mei-2011 20:20:31 org.apache.catalina.loader.WebappClassLoader loadClass
INFO: Illegal access: this web application instance has been stopped already.  Could not load com.liferay.portal.kernel.log.Log.  The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
java.lang.IllegalStateException


The first time this happens, i get this error error on my console.
java.lang.NoClassDefFoundError: com/liferay/portal/kernel/log/Log


I initially tried using apache commons logging (like i'm using in the portlets of the same project) but that gave me the same error. The weird thing is, is that i did managed to get it to work, using the liferay logfactoryutil
Joost Timmerman, módosítva 12 év-val korábban

RE: Hooks throwing exception

New Member Bejegyzések: 12 Csatlakozás dátuma: 2011.02.14. Legújabb bejegyzések
I might have got it to work after explicitly adding log4j to my project's WEB-INF/lib folder and classpath and changing the LogFactory back to the Apache one. Although it seems a duplicate (since there is a log4j.jar in the lib of the root webapp) it seems to work.

EDIT: Its not very reliable. Sometimes i have to restart twice or right after a fresh boot cause it spits out this error again. It does not just fail after deploying. A session-timeout also breaks it.
java.lang.NoClassDefFoundError: org/apache/log4j/spi/LocationInfo