2012-09-17 106 views
2

我想用grails測試一個簡單的liferay portlet。在liferay上部署grails portlet時出錯6

我使用: Liferay的版本Liferay的門戶-6.1.1-CE-GA2有Tomcat的版本 的tomcat-7.0.27嵌入的是,Grails 2.1.0,Groovy的IDE/Grails的工具套件版本:3.0 .0.RELEASE andJDK1.7.0_05

我已經instaled plugins.portlets = 0.9.2和plugins.portlets-的Liferay = 0.4

在一個項目中安裝Grails插件後,我只需運行以下命令: create-portlet directorio.testLiferay並生成-portlet-意見directorio.testLiferay

我有可配置的Config.groovy以下類似http://grails.org/plugin/portlets-liferay

我的portlet類看起來如下:

package directorio 

進口javax.portlet *

class TestLiferayPortlet {

def title = 'Grails test' 
def description = '''Portlet de pruebas.''' 
def displayName = 'GrailsTest' 
def supports = ['text/html':['view', 'edit', 'help']] 

//uncomment to declare events support 
//def events = [publish: ["event-1"], process: ["event-2"]] 

//uncomment to declare public render parameter support 
//def public_render_params = ["prp-1","prp-2"] 

// DEFINITIONS FOR liferay-display.xml 
def liferay_display_category = 'SCRD' 

// DEFINITIONS FOR liferay-portlets.xml 
def liferay_portlet_ajaxable = 'true' 
def liferay_portlet_header_portlet_css = [ 
     '/css/protoFlow.css' 
] 
def liferay_portlet_header_portlet_javascript = [ 
     '/plugins/richui-0.5/js/flow/lib/prototype.js', 
     '/plugins/richui-0.5/js/flow/lib/scriptaculous.js', 
     '/plugins/richui-0.5/js/reflection/reflection.js', 
     '/plugins/richui-0.5/js/flow/protoFlow.js' 
] 

def actionView = { 
    //TODO Define action phase for 'view' portlet mode 
    portletResponse.setRenderParameter("prp-1", "value-1"); 
} 

def eventView = { 
    //TODO Define event phase for 'view' portlet mode. 
    def eventValue = portletRequest.event.value 
} 

def renderView = { 
    //TODO Define render phase for 'view' portlet mode. 
    //Return the map of the variables bound to the view, 
    //in this case view.gsp if it exists or render.gsp if not 
    ['mykey':'myvalue'] 
} 

def resourceView = { 
    //TODO define resource phase for 'view' portlet mode. 
    //Render HTML as response 
    render { 
     html { 
      head() 
      body { 
       "Render me!!" 
      } 
     } 
    } 
} 

def actionEdit = { 
    //TODO Define action phase for 'edit' portlet mode 
    portletResponse.setEvent("event-1","event-1") 
    portletResponse.setPortletMode(PortletMode.VIEW) 
} 

def renderHelp = { 
    //TODO Define render phase for 'help' portlet mode 
    //Return the map of the variables bound to the view, 
    //in this case help.gsp if it exists or render.gsp if not 
    ['mykey':'myvalue'] 
} 

def doResource = { 
    //TODO Define handling for default resource URL handling method, independent of porlet mode 
    //Return the map of the variables bound to the view, 
    //in this case resource.gsp 
    ['mykey':'myvalue'] 
} 

//invoked by setting 'action' param in resourceURL (as an example) to 'doSomethingAjaxy' 
def doSomethingAjaxy = { 
    //render JSON 
    render(contentType:"text/json") { 
     example(mykey:"myvalue") 
    } 
} 

//invoked by setting 'action' param in eventURL (as an example) to 'handleThisEvent' 
def handleThisEvent = { 
    //render thisEvent.gsp 
    render(view:"thisEvent") 
} 

}

如果我執行運行應用程序和戰爭,它工作正常。但是,當我把戰爭部署到liferay目錄和啓動tomcat,我得到錯誤:

SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. 
18:44:16,665 ERROR [GrailsDispatcherPortlet:276] Context initialization failed 
java.lang.NullPointerException 
    at org.codehaus.grails.portlets.container.AbstractPortletContainerAdapter.getInstance(AbstractPortletContainerAdapter.java:25) 
    at org.codehaus.grails.portlets.GrailsPortletApplicationContext.initPortletContainerAdapter(GrailsPortletApplicationContext.java:37) 
    at org.codehaus.grails.portlets.GrailsPortletApplicationContext.setPortletContext(GrailsPortletApplicationContext.java:28) 
    at org.springframework.web.portlet.FrameworkPortlet.createPortletApplicationContext(FrameworkPortlet.java:349) 
    at org.springframework.web.portlet.FrameworkPortlet.initPortletApplicationContext(FrameworkPortlet.java:294) 
    at org.springframework.web.portlet.FrameworkPortlet.initPortletBean(FrameworkPortlet.java:268) 
    at org.springframework.web.portlet.GenericPortletBean.init(GenericPortletBean.java:116) 
    at javax.portlet.GenericPortlet.init(GenericPortlet.java:107) 
    at com.liferay.portlet.InvokerPortletImpl.init(InvokerPortletImpl.java:256) 
    at com.liferay.portlet.PortletInstanceFactoryImpl.init(PortletInstanceFactoryImpl.java:221) 
    at com.liferay.portlet.PortletInstanceFactoryImpl.create(PortletInstanceFactoryImpl.java:140) 
    at com.liferay.portlet.PortletInstanceFactoryUtil.create(PortletInstanceFactoryUtil.java:41) 
    at com.liferay.portlet.PortletBagFactory.create(PortletBagFactory.java:310) 
    at com.liferay.portal.deploy.hot.PortletHotDeployListener.initPortlet(PortletHotDeployListener.java:546) 
    at com.liferay.portal.deploy.hot.PortletHotDeployListener.doInvokeDeploy(PortletHotDeployListener.java:321) 
    at com.liferay.portal.deploy.hot.PortletHotDeployListener.invokeDeploy(PortletHotDeployListener.java:120) 
    at com.liferay.portal.deploy.hot.HotDeployImpl.doFireDeployEvent(HotDeployImpl.java:188) 
    at com.liferay.portal.deploy.hot.HotDeployImpl.fireDeployEvent(HotDeployImpl.java:96) 
    at com.liferay.portal.kernel.deploy.hot.HotDeployUtil.fireDeployEvent(HotDeployUtil.java:27) 
    at com.liferay.portal.kernel.servlet.PluginContextListener.fireDeployEvent(PluginContextListener.java:151) 
    at com.liferay.portal.kernel.servlet.PluginContextListener.doPortalInit(PluginContextListener.java:141) 
    at com.liferay.portal.kernel.util.BasePortalLifecycle.portalInit(BasePortalLifecycle.java:42) 
    at com.liferay.portal.kernel.util.PortalLifecycleUtil.register(PortalLifecycleUtil.java:64) 
    at com.liferay.portal.kernel.util.PortalLifecycleUtil.register(PortalLifecycleUtil.java:56) 
    at com.liferay.portal.kernel.util.BasePortalLifecycle.registerPortalLifecycle(BasePortalLifecycle.java:52) 
    at com.liferay.portal.kernel.servlet.PluginContextListener.contextInitialized(PluginContextListener.java:103) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615) 
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1099) 
    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1621) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 
18:44:16,667 ERROR [pool-2-thread-1][PortletBagFactory:313] java.lang.NullPointerException 
java.lang.NullPointerException 
    at org.codehaus.grails.portlets.container.AbstractPortletContainerAdapter.getInstance(AbstractPortletContainerAdapter.java:25) 
    at org.codehaus.grails.portlets.GrailsPortletApplicationContext.initPortletContainerAdapter(GrailsPortletApplicationContext.java:37) 
    at org.codehaus.grails.portlets.GrailsPortletApplicationContext.setPortletContext(GrailsPortletApplicationContext.java:28) 
    at org.springframework.web.portlet.FrameworkPortlet.createPortletApplicationContext(FrameworkPortlet.java:349) 
    at org.springframework.web.portlet.FrameworkPortlet.initPortletApplicationContext(FrameworkPortlet.java:294) 
    at org.springframework.web.portlet.FrameworkPortlet.initPortletBean(FrameworkPortlet.java:268) 
    at org.springframework.web.portlet.GenericPortletBean.init(GenericPortletBean.java:116) 
    at javax.portlet.GenericPortlet.init(GenericPortlet.java:107) 
    at com.liferay.portlet.InvokerPortletImpl.init(InvokerPortletImpl.java:256) 
    at com.liferay.portlet.PortletInstanceFactoryImpl.init(PortletInstanceFactoryImpl.java:221) 
    at com.liferay.portlet.PortletInstanceFactoryImpl.create(PortletInstanceFactoryImpl.java:140) 
    at com.liferay.portlet.PortletInstanceFactoryUtil.create(PortletInstanceFactoryUtil.java:41) 
    at com.liferay.portlet.PortletBagFactory.create(PortletBagFactory.java:310) 
    at com.liferay.portal.deploy.hot.PortletHotDeployListener.initPortlet(PortletHotDeployListener.java:546) 
    at com.liferay.portal.deploy.hot.PortletHotDeployListener.doInvokeDeploy(PortletHotDeployListener.java:321) 
    at com.liferay.portal.deploy.hot.PortletHotDeployListener.invokeDeploy(PortletHotDeployListener.java:120) 
    at com.liferay.portal.deploy.hot.HotDeployImpl.doFireDeployEvent(HotDeployImpl.java:188) 
    at com.liferay.portal.deploy.hot.HotDeployImpl.fireDeployEvent(HotDeployImpl.java:96) 
    at com.liferay.portal.kernel.deploy.hot.HotDeployUtil.fireDeployEvent(HotDeployUtil.java:27) 
    at com.liferay.portal.kernel.servlet.PluginContextListener.fireDeployEvent(PluginContextListener.java:151) 
    at com.liferay.portal.kernel.servlet.PluginContextListener.doPortalInit(PluginContextListener.java:141) 
    at com.liferay.portal.kernel.util.BasePortalLifecycle.portalInit(BasePortalLifecycle.java:42) 
    at com.liferay.portal.kernel.util.PortalLifecycleUtil.register(PortalLifecycleUtil.java:64) 
    at com.liferay.portal.kernel.util.PortalLifecycleUtil.register(PortalLifecycleUtil.java:56) 
    at com.liferay.portal.kernel.util.BasePortalLifecycle.registerPortalLifecycle(BasePortalLifecycle.java:52) 
    at com.liferay.portal.kernel.servlet.PluginContextListener.contextInitialized(PluginContextListener.java:103) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615) 
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1099) 
    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1621) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 
18:44:16,668 INFO [GrailsDispatcherPortlet:98] Initializing portlet 'TestLiferay' 
18:44:16,671 INFO [GrailsDispatcherPortlet:263] FrameworkPortlet 'TestLiferay': initialization started 
18:44:16,672 ERROR [GrailsDispatcherPortlet:276] Context initialization failed 
java.lang.NullPointerException 
    at org.codehaus.grails.portlets.container.AbstractPortletContainerAdapter.getInstance(AbstractPortletContainerAdapter.java:25) 
    at org.codehaus.grails.portlets.GrailsPortletApplicationContext.initPortletContainerAdapter(GrailsPortletApplicationContext.java:37) 
    at org.codehaus.grails.portlets.GrailsPortletApplicationContext.setPortletContext(GrailsPortletApplicationContext.java:28) 
    at org.springframework.web.portlet.FrameworkPortlet.createPortletApplicationContext(FrameworkPortlet.java:349) 
    at org.springframework.web.portlet.FrameworkPortlet.initPortletApplicationContext(FrameworkPortlet.java:294) 
    at org.springframework.web.portlet.FrameworkPortlet.initPortletBean(FrameworkPortlet.java:268) 
    at org.springframework.web.portlet.GenericPortletBean.init(GenericPortletBean.java:116) 
    at javax.portlet.GenericPortlet.init(GenericPortlet.java:107) 
    at com.liferay.portlet.InvokerPortletImpl.init(InvokerPortletImpl.java:256) 
    at com.liferay.portlet.PortletInstanceFactoryImpl.init(PortletInstanceFactoryImpl.java:221) 
    at com.liferay.portlet.PortletInstanceFactoryImpl.create(PortletInstanceFactoryImpl.java:140) 
    at com.liferay.portlet.PortletInstanceFactoryUtil.create(PortletInstanceFactoryUtil.java:41) 
    at com.liferay.portal.deploy.hot.PortletHotDeployListener.initPortletApp(PortletHotDeployListener.java:598) 
    at com.liferay.portal.deploy.hot.PortletHotDeployListener.doInvokeDeploy(PortletHotDeployListener.java:328) 
    at com.liferay.portal.deploy.hot.PortletHotDeployListener.invokeDeploy(PortletHotDeployListener.java:120) 
    at com.liferay.portal.deploy.hot.HotDeployImpl.doFireDeployEvent(HotDeployImpl.java:188) 
    at com.liferay.portal.deploy.hot.HotDeployImpl.fireDeployEvent(HotDeployImpl.java:96) 
    at com.liferay.portal.kernel.deploy.hot.HotDeployUtil.fireDeployEvent(HotDeployUtil.java:27) 
    at com.liferay.portal.kernel.servlet.PluginContextListener.fireDeployEvent(PluginContextListener.java:151) 
    at com.liferay.portal.kernel.servlet.PluginContextListener.doPortalInit(PluginContextListener.java:141) 
    at com.liferay.portal.kernel.util.BasePortalLifecycle.portalInit(BasePortalLifecycle.java:42) 
    at com.liferay.portal.kernel.util.PortalLifecycleUtil.register(PortalLifecycleUtil.java:64) 
    at com.liferay.portal.kernel.util.PortalLifecycleUtil.register(PortalLifecycleUtil.java:56) 
    at com.liferay.portal.kernel.util.BasePortalLifecycle.registerPortalLifecycle(BasePortalLifecycle.java:52) 
    at com.liferay.portal.kernel.servlet.PluginContextListener.contextInitialized(PluginContextListener.java:103) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615) 
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1099) 
    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1621) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 
18:44:16,673 ERROR [pool-2-thread-1][HotDeployImpl:191] com.liferay.portal.kernel.deploy.hot.HotDeployException: Error registering portlets for testLiferayPortlet-0.1 
com.liferay.portal.kernel.deploy.hot.HotDeployException: Error registering portlets for testLiferayPortlet-0.1 
    at com.liferay.portal.kernel.deploy.hot.BaseHotDeployListener.throwHotDeployException(BaseHotDeployListener.java:46) 
    at com.liferay.portal.deploy.hot.PortletHotDeployListener.invokeDeploy(PortletHotDeployListener.java:123) 
    at com.liferay.portal.deploy.hot.HotDeployImpl.doFireDeployEvent(HotDeployImpl.java:188) 
    at com.liferay.portal.deploy.hot.HotDeployImpl.fireDeployEvent(HotDeployImpl.java:96) 
    at com.liferay.portal.kernel.deploy.hot.HotDeployUtil.fireDeployEvent(HotDeployUtil.java:27) 
    at com.liferay.portal.kernel.servlet.PluginContextListener.fireDeployEvent(PluginContextListener.java:151) 
    at com.liferay.portal.kernel.servlet.PluginContextListener.doPortalInit(PluginContextListener.java:141) 
    at com.liferay.portal.kernel.util.BasePortalLifecycle.portalInit(BasePortalLifecycle.java:42) 
    at com.liferay.portal.kernel.util.PortalLifecycleUtil.register(PortalLifecycleUtil.java:64) 
    at com.liferay.portal.kernel.util.PortalLifecycleUtil.register(PortalLifecycleUtil.java:56) 
    at com.liferay.portal.kernel.util.BasePortalLifecycle.registerPortalLifecycle(BasePortalLifecycle.java:52) 
    at com.liferay.portal.kernel.servlet.PluginContextListener.contextInitialized(PluginContextListener.java:103) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:895) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:871) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:615) 
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1099) 
    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1621) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 
Caused by: java.lang.NullPointerException 
    at org.codehaus.grails.portlets.container.AbstractPortletContainerAdapter.getInstance(AbstractPortletContainerAdapter.java:25) 
    at org.codehaus.grails.portlets.GrailsPortletApplicationContext.initPortletContainerAdapter(GrailsPortletApplicationContext.java:37) 
    at org.codehaus.grails.portlets.GrailsPortletApplicationContext.setPortletContext(GrailsPortletApplicationContext.java:28) 
    at org.springframework.web.portlet.FrameworkPortlet.createPortletApplicationContext(FrameworkPortlet.java:349) 
    at org.springframework.web.portlet.FrameworkPortlet.initPortletApplicationContext(FrameworkPortlet.java:294) 
    at org.springframework.web.portlet.FrameworkPortlet.initPortletBean(FrameworkPortlet.java:268) 
    at org.springframework.web.portlet.GenericPortletBean.init(GenericPortletBean.java:116) 
    at javax.portlet.GenericPortlet.init(GenericPortlet.java:107) 
    at com.liferay.portlet.InvokerPortletImpl.init(InvokerPortletImpl.java:256) 
    at com.liferay.portlet.PortletInstanceFactoryImpl.init(PortletInstanceFactoryImpl.java:221) 
    at com.liferay.portlet.PortletInstanceFactoryImpl.create(PortletInstanceFactoryImpl.java:140) 
    at com.liferay.portlet.PortletInstanceFactoryUtil.create(PortletInstanceFactoryUtil.java:41) 
    at com.liferay.portal.deploy.hot.PortletHotDeployListener.initPortletApp(PortletHotDeployListener.java:598) 
    at com.liferay.portal.deploy.hot.PortletHotDeployListener.doInvokeDeploy(PortletHotDeployListener.java:328) 
    at com.liferay.portal.deploy.hot.PortletHotDeployListener.invokeDeploy(PortletHotDeployListener.java:120) 
    ... 24 more 

我真的褒獎任何幫助。

很多tx。

+0

我用的Liferay 6.0.6使用Grails 1.3 .7實現這個門戶網站:https://developers.t-mobile.pl 它工作正常(ans仍然有效)。現在我已經嘗試了你的配置,並且也得到了相同的異常。我發現由於某種原因,Spring的ApplicationContextAware接口被忽略,LiferayPortletContainerAdapter在初始化時不會收到Spring應用程序上下文。所以這就是原因,儘管沒有更多的時間進行調查。 – topr

回答

3

這是在Liferay中6.1.1

http://issues.liferay.com/browse/LPS-29103

的錯誤看起來熱部署重新排列聽衆在web.xml中,當它合併。 可能會更好地堅持與6.1.0,或者手動修改web.xml中每次您重新部署

0

在你的BuildConfig.groovy

依賴,加入compile 'javax.portlet:portlet-api:2.0':d

相關問題