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:
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.
Dopodiché ho cercato di importare tutte le dipendenze necessarie in build.gradle
Importandole nel jar OSGi come da guida di liferay per l'utilizzo di librerie esterne all'interno dei moduli:
Cercando di "deployare" il modulo incappo nel seguente problema
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:
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
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:
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:
In pratica non riesce a trovare la classe che estende UI di Vaadin, anche se viene referenziata nel package corretto:
Qualcuno ha qualche idea del perché?
Grazie,
Davide
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