Liferay Portal安装在WAS下后,启动时出现下面的异常:
[10-11-18 15:25:05:171 CST] 0000000a SystemOut O 15:25:05,171 ERROR [MainServlet:162] com.liferay.portal.kernel.events.ActionException: com.liferay.portal.verify.VerifyException: java.lang.reflect.UndeclaredThrowableException
com.liferay.portal.kernel.events.ActionException: com.liferay.portal.verify.VerifyException: java.lang.reflect.UndeclaredThrowableException
at com.liferay.portal.events.StartupAction.run(StartupAction.java:81)
at com.liferay.portal.servlet.MainServlet.init(MainServlet.java:154)
at javax.servlet.GenericServlet.init(GenericServlet.java:241)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:325)
at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.init(ServletWrapperImpl.java:165)
at com.ibm.ws.webcontainer.servlet.ServletWrapper.initialize(ServletWrapper.java:1588)
at com.ibm.wsspi.webcontainer.extension.WebExtensionProcessor.createServletWrapper(WebExtensionProcessor.java:98)
at com.ibm.ws.webcontainer.webapp.WebApp.getServletWrapper(WebApp.java:936)
at com.ibm.ws.webcontainer.webapp.WebApp.getServletWrapper(WebApp.java:857)
at com.ibm.ws.webcontainer.webapp.WebApp.initializeTargetMappings(WebApp.java:538)
at com.ibm.ws.webcontainer.webapp.WebApp.commonInitializationFinish(WebApp.java:360)
at com.ibm.ws.webcontainer.webapp.WebAppImpl.initialize(WebAppImpl.java:292)
at com.ibm.ws.webcontainer.webapp.WebGroupImpl.addWebApplication(WebGroupImpl.java:99)
at com.ibm.ws.webcontainer.VirtualHostImpl.addWebApplication(VirtualHostImpl.java:167)
at com.ibm.ws.webcontainer.WSWebContainer.addWebApp(WSWebContainer.java:722)
at com.ibm.ws.webcontainer.WSWebContainer.addWebApplication(WSWebContainer.java:607)
at com.ibm.ws.webcontainer.component.WebContainerImpl.install(WebContainerImpl.java:376)
at com.ibm.ws.webcontainer.component.WebContainerImpl.start(WebContainerImpl.java:668)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1162)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1313)
at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:611)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:938)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:740)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:2092)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:437)
at com.ibm.ws.runtime.component.CompositionUnitImpl.start(CompositionUnitImpl.java:122)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.start(CompositionUnitMgrImpl.java:380)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl.access$300(CompositionUnitMgrImpl.java:105)
at com.ibm.ws.runtime.component.CompositionUnitMgrImpl$CUInitializer.run(CompositionUnitMgrImpl.java:928)
at com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:349)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1527)
Caused by: com.liferay.portal.verify.VerifyException: java.lang.reflect.UndeclaredThrowableException
at com.liferay.portal.verify.VerifyJournal.verify(VerifyJournal.java:62)
at com.liferay.portal.verify.VerifyProcess.verify(VerifyProcess.java:53)
at com.liferay.portal.verify.VerifyProcessSuite.verify(VerifyProcessSuite.java:52)
at com.liferay.portal.events.StartupAction.doRun(StartupAction.java:274)
at com.liferay.portal.events.StartupAction.run(StartupAction.java:75)
... 30 more
Caused by: java.lang.reflect.UndeclaredThrowableException
at $Proxy259.getArticles(Unknown Source)
at com.liferay.portlet.journal.service.JournalArticleLocalServiceUtil.getArticles(JournalArticleLocalServiceUtil.java:562)
at com.liferay.portal.verify.VerifyJournal.verifyJournal(VerifyJournal.java:215)
at com.liferay.portal.verify.VerifyJournal.verify(VerifyJournal.java:59)
在Portal应用在Tomcat下启动完全正常,查不到异常的原因。因为动态代理没有把底层的异常抛出来,只好跟踪代码,加入调试信息,发现是一个Version的类有冲突,Liferay本身有一个Version类,我们自己又加了一个Version类,包路径不一样,后加的Version类包路径为根,class文件放到了classes的下面。
删除这个Version类之后,就正常了。或者把class文件移动jar包中也可以。