Fórum

Vaadin Portlet in Liferay 7 - Problemi con le dipendenze

David Bonomels, modificado 7 Anos atrás.

Vaadin Portlet in Liferay 7 - Problemi con le dipendenze

New Member Postagens: 10 Data de Entrada: 10/01/17 Postagens Recentes
Buongiorno a tutti,

come da titolo sto lavorando su Liferay 7, cercando di creare una portlet Vaadin in un modulo OSGi.

Ho preso spunto da questo articolo. Qui, utilizza maven per eseguire le build ed il deploy su liferay, scaricando il progetto da GitHub ho riscontrato comunque problemi e quindi ho deciso di partire da capo.

Versioni:
  • Liferay Portal 7.x
  • Vaadin 7.5.1


Tool utilizzato per le dipendenze e per il build Gradle

Per iniziare ho creato un modulo semplicissimo, dove vado a estendere la servlet di Vaadin invece che la GenericPortlet o la MVCPortlet.

@SuppressWarnings("serial")
@Component(
	immediate = true,
	property = {
		"com.liferay.portlet.display-category=Vaadin",
		"com.liferay.portlet.instanceable=true",
		"javax.portlet.display-name=Vaadin Portlet",
		....
	},
	service = Portlet.class
)
public class VaadinServletPortlet extends com.vaadin.server.VaadinPortlet {
	//NOP
}


Dopodiché ho cercato di importare tutte le dipendenze necessarie in build.gradle

dependencies {
	compileOnly group: "com.liferay.portal", name: "com.liferay.portal.kernel", version: "2.0.0"
	compileOnly group: "com.liferay.portal", name: "com.liferay.util.taglib", version: "2.0.0"
	compileOnly group: "javax.portlet", name: "portlet-api", version: "2.0"
	compileOnly group: "javax.servlet", name: "javax.servlet-api", version: "3.0.1"
	compileOnly group: "jstl", name: "jstl", version: "1.2"
	compileOnly group: "org.osgi", name: "org.osgi.compendium", version: "5.0.0"
	
	compile group: "org.jsoup", name: "jsoup",  version: "1.8.1"
	compile group: "com.vaadin", name: "vaadin-server",  version: "7.5.1" 
	compile group: "com.vaadin", name: "vaadin-shared",  version: "7.5.1"
	compile group: "com.vaadin", name: "vaadin-sass-compiler",  version: "0.9.12"
	compile group: "com.vaadin.external.flute", name: "flute",  version: "1.3.0.gg2"
	compile group: "org.w3c.css", name: "sac",  version: "1.3"
	compile group: "com.vaadin.external.streamhtmlparser", name: "streamhtmlparser-jsilver",  version: "0.0.10.vaadin1"
	compile group: "com.vaadin.external.google", name: "guava",  version: "16.0.1.vaadin1"
}


Importandole nel jar OSGi come da guida di liferay per l'utilizzo di librerie esterne all'interno dei moduli:

Bundle-Name: vaadin-servlet
Bundle-SymbolicName: vaadin.servlet
Bundle-Version: 1.0.0

-includeresource: @streamhtmlparser-jsilver-0.0.10.vaadin1.jar,@vaadin-sass-compiler-0.9.12.jar,@flute-1.3.0.gg2.jar,@sac-1.3.jar,@vaadin-shared-7.5.1.jar,@guava-16.0.1.vaadin1.jar,@jsoup-1.8.1.jar,@vaadin-server-7.5.1.jar


Cercando di "deployare" il modulo incappo nel seguente problema

org.osgi.framework.BundleException: Could not resolve module: vaadin.servlet [512]
  Unresolved requirement: Import-Package: com.google.appengine.api.datastore


Che è semplicemente derivato dal fatto che nel MANIFEST del jar vaadin-server è presente una "provided dependencies" e di conseguenza il seguente codice che viene aggiunto al modulo OSGi risultante:
Import-Package: com.google.appengine.api.datastore


Ovviamente è una dipendenza che si aspetta sia fornita nel caso stia lavorando in cloud Google con componenti Vaadin, ma siccome non è il mio caso, è possibile rimuovere dal MANIFEST del mio modulo gli import per
com.google.appengine » appengine-api-1.0-sdk


Ma soprattutto è corretto rimuoverli o dovrei risolvere il problema in un altro modo?


Grazie,
Davide


**********************************************************************************************
UPDATE - 12/01/2017
**********************************************************************************************
Qualche progresso, rendendo opzionali tutte le dipendenze (è una brutta cosa lo so, la sistemerò quando poi andrà la portlet) tramite il file bnd.bdn:


Bundle-Name: vaadin-servlet
Bundle-SymbolicName: vaadin.servlet
Bundle-Version: 1.0.0

-includeresource: @streamhtmlparser-jsilver-0.0.10.vaadin1.jar,@vaadin-sass-compiler-0.9.12.jar,@flute-1.3.0.gg2.jar,@sac-1.3.jar,@vaadin-shared-7.5.1.jar,@guava-16.0.1.vaadin1.jar,@jsoup-1.8.1.jar,@vaadin-server-7.5.1.jar
Import-Package: *;resolution:=optional


Riesco a deployare il bundle OSGi e a farlo partire su Liferay (versione Liferay Community Edition Portal 7.0.2 GA3).
Ora è cambiata la situazione, dato che aggiungendo l'applicazione al portale mi viene restituita la seguente eccezione:

11:18:27,785 ERROR [http-nio-8080-exec-1][PortletServlet:109] javax.portlet.PortletException: com.vaadin.server.ServiceException: com.vaadin.server.ServiceException: it.myti.vaadin.portlet.ui.VaadinTestUI could not be loaded
javax.portlet.PortletException: com.vaadin.server.ServiceException: com.vaadin.server.ServiceException: it.myti.vaadin.portlet.ui.VaadinTestUI could not be loaded
	at com.vaadin.server.VaadinPortlet.handleRequest(VaadinPortlet.java:547)
	at com.vaadin.server.VaadinPortlet.doDispatch(VaadinPortlet.java:614)
	at javax.portlet.GenericPortlet.render(GenericPortlet.java:262)
	at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:103)
	at com.liferay.portlet.ScriptDataPortletFilter.doFilter(ScriptDataPortletFilter.java:57)
	at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:100)
	at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:64)
	at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:105)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	at com.liferay.portal.osgi.web.servlet.context.helper.internal.ServletContextHelperRegistrationImpl$PortletServletWrapper.service(ServletContextHelperRegistrationImpl.java:427)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	at org.eclipse.equinox.http.servlet.internal.registration.EndpointRegistration.service(EndpointRegistration.java:153)
	at org.eclipse.equinox.http.servlet.internal.servlet.FilterChainImpl.doFilter(FilterChainImpl.java:50)
	at com.liferay.portal.osgi.web.servlet.context.helper.internal.ServletContextHelperRegistrationImpl$RestrictPortletServletRequestFilter.doFilter(ServletContextHelperRegistrationImpl.java:447)
	at org.eclipse.equinox.http.servlet.internal.registration.FilterRegistration.doFilter(FilterRegistration.java:121)
	at org.eclipse.equinox.http.servlet.internal.servlet.FilterChainImpl.doFilter(FilterChainImpl.java:45)
	at org.eclipse.equinox.http.servlet.internal.servlet.ResponseStateHandler.processRequest(ResponseStateHandler.java:70)
	at org.eclipse.equinox.http.servlet.internal.context.DispatchTargets.doDispatch(DispatchTargets.java:117)
	at org.eclipse.equinox.http.servlet.internal.servlet.RequestDispatcherAdaptor.include(RequestDispatcherAdaptor.java:48)
	at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:529)
	at com.liferay.portlet.InvokerPortletImpl.invokeRender(InvokerPortletImpl.java:604)
	at com.liferay.portlet.InvokerPortletImpl.render(InvokerPortletImpl.java:391)
	at com.liferay.portal.monitoring.internal.portlet.MonitoringInvokerPortlet.render(MonitoringInvokerPortlet.java:261)
	at org.apache.jsp.html.portal.render_005fportlet_jsp._jspService(render_005fportlet_jsp.java:1549)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	at com.liferay.portal.servlet.DirectRequestDispatcher.include(DirectRequestDispatcher.java:64)
	at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.doDispatch(ClassLoaderRequestDispatcherWrapper.java:78)
	at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.include(ClassLoaderRequestDispatcherWrapper.java:53)
	at com.liferay.portlet.PortletContainerImpl._doRender(PortletContainerImpl.java:671)
	at com.liferay.portlet.PortletContainerImpl.render(PortletContainerImpl.java:145)
	at com.liferay.portlet.SecurityPortletContainerWrapper.render(SecurityPortletContainerWrapper.java:126)
	at com.liferay.portlet.RestrictPortletContainerWrapper.render(RestrictPortletContainerWrapper.java:126)
	at com.liferay.portal.kernel.portlet.PortletContainerUtil.render(PortletContainerUtil.java:155)
	at com.liferay.portal.action.RenderPortletAction.execute(RenderPortletAction.java:112)
	at com.liferay.portal.action.UpdateLayoutAction.addPortlet(UpdateLayoutAction.java:317)
	at com.liferay.portal.action.UpdateLayoutAction.getJSON(UpdateLayoutAction.java:268)
	at com.liferay.portal.struts.JSONAction.execute(JSONAction.java:76)
	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
	at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:170)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
	at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:568)
	at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:545)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:119)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
	at com.liferay.portal.monitoring.internal.servlet.filter.MonitoringFilter.processFilter(MonitoringFilter.java:180)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
	at com.liferay.portal.security.sso.ntlm.internal.servlet.filter.NtlmPostFilter.processFilter(NtlmPostFilter.java:107)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
	at com.liferay.portal.servlet.filters.uploadservletrequest.UploadServletRequestFilter.processFilter(UploadServletRequestFilter.java:93)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
	at com.liferay.portal.servlet.filters.strip.StripFilter.processFilter(StripFilter.java:336)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
	at com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(GZipFilter.java:125)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
	at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:303)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
	at com.liferay.portal.servlet.filters.jsoncontenttype.JSONContentTypeFilter.processFilter(JSONContentTypeFilter.java:42)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
	at com.liferay.portal.sharepoint.SharepointFilter.processFilter(SharepointFilter.java:88)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:142)
	at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:260)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
	at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
	at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
	at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:394)
	at com.liferay.portal.servlet.filters.urlrewrite.UrlRewriteFilter.processFilter(UrlRewriteFilter.java:65)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:48)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDoFilter(InvokerFilterChain.java:207)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:112)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:168)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:168)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.processDirectCallFilter(InvokerFilterChain.java:188)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:96)
	at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:115)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)
Caused by: com.vaadin.server.ServiceException: com.vaadin.server.ServiceException: it.myti.vaadin.portlet.ui.VaadinTestUI could not be loaded
	at com.vaadin.server.VaadinService.handleExceptionDuringRequest(VaadinService.java:1469)
	at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1426)
	at com.vaadin.server.VaadinPortlet.handleRequest(VaadinPortlet.java:544)
	... 136 more
Caused by: com.vaadin.server.ServiceException: it.myti.vaadin.portlet.ui.VaadinTestUI could not be loaded
	at com.vaadin.server.ServletPortletHelper.verifyUIClass(ServletPortletHelper.java:77)
	at com.vaadin.server.ServletPortletHelper.initDefaultUIProvider(ServletPortletHelper.java:156)
	at com.vaadin.server.VaadinService.createAndRegisterSession(VaadinService.java:773)
	at com.vaadin.server.VaadinService.doFindOrCreateVaadinSession(VaadinService.java:727)
	at com.vaadin.server.VaadinService.findOrCreateVaadinSession(VaadinService.java:668)
	at com.vaadin.server.VaadinService.findVaadinSession(VaadinService.java:527)
	at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1408)
	... 137 more
Caused by: java.lang.ClassNotFoundException: it.myti.vaadin.portlet.ui.VaadinTestUI
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at com.vaadin.server.ServletPortletHelper.verifyUIClass(ServletPortletHelper.java:70)
	... 143 more
11:18:27,797 ERROR [http-nio-8080-exec-1][render_portlet_jsp:131] null
java.lang.ClassNotFoundException: it.myti.vaadin.portlet.ui.VaadinTestUI
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at com.vaadin.server.ServletPortletHelper.verifyUIClass(ServletPortletHelper.java:70)
	at com.vaadin.server.ServletPortletHelper.initDefaultUIProvider(ServletPortletHelper.java:156)
	at com.vaadin.server.VaadinService.createAndRegisterSession(VaadinService.java:773)
	at com.vaadin.server.VaadinService.doFindOrCreateVaadinSession(VaadinService.java:727)
	at com.vaadin.server.VaadinService.findOrCreateVaadinSession(VaadinService.java:668)
	at com.vaadin.server.VaadinService.findVaadinSession(VaadinService.java:527)
	at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1408)
	at com.vaadin.server.VaadinPortlet.handleRequest(VaadinPortlet.java:544)
	at com.vaadin.server.VaadinPortlet.doDispatch(VaadinPortlet.java:614)
	at javax.portlet.GenericPortlet.render(GenericPortlet.java:262)
	at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:103)
	at com.liferay.portlet.ScriptDataPortletFilter.doFilter(ScriptDataPortletFilter.java:57)
	at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:100)
	at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:64)
	at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:105)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	at com.liferay.portal.osgi.web.servlet.context.helper.internal.ServletContextHelperRegistrationImpl$PortletServletWrapper.service(ServletContextHelperRegistrationImpl.java:427)


In pratica non riesce a trovare la classe che estende UI di Vaadin, anche se viene referenziata nel package corretto:

@Component(
	immediate = true,
	property = {
		"com.liferay.portlet.instanceable=true",
		"com.liferay.portlet.display-category="+VaadinTestConstants.DISPLAY_CATEGORY,
		"javax.portlet.display-name="+VaadinTestConstants.PORTLET_DISPLAY_NAME,
		"javax.portlet.name="+VaadinTestConstants.PORTLET_NAME,
		"javax.portlet.init-param.UI=it.myti.vaadin.portlet.ui.VaadinTestUI",
		"javax.portlet.security-role-ref=power-user,user"
	},
	service = Portlet.class
)
public class VaadinTestPortlet extends VaadinPortlet {
	// NOP
}


Qualcuno ha qualche idea del perché?

Grazie,
Davide