0 votes

Spring MVC Portlet et Weblogic Portal

J'essaie de créer un Portlet Spring MVC (version 3.0.0) pour le déployer dans Weblogic Portal (10.3.2) mais j'obtiens l'erreur suivante lorsque je vais sur la page du portail sur laquelle j'ai placé mon Portlet :

The portlet "helloWorld" is not available. The portlet class org.springframework.web.portlet.DispatcherPortlet is not found. javax.portlet.UnavailableException: The portlet "helloWorld" is not available. The portlet class org.springframework.web.portlet.DispatcherPortlet is not found.
at com.bea.portlet.container.PortletStub.createPortletInstance(PortletStub.java:1087)
 at com.bea.portlet.container.PortletStub.getPortletInstance(PortletStub.java:1020)
 at com.bea.portlet.container.PortletStub.init(PortletStub.java:231)
 at com.bea.portlet.container.AppContainer.invokeRender(AppContainer.java:972)
 at com.bea.netuix.servlets.controls.content.JavaPortletContent.fireRender(JavaPortletContent.java:267)
 at com.bea.netuix.servlets.controls.content.JavaPortletContent.renderInternal(JavaPortletContent.java:162)
 at com.bea.netuix.servlets.controls.content.JavaPortletContent.beginRender(JavaPortletContent.java:108)
 at com.bea.netuix.servlets.controls.application.laf.ContentControlRenderer.beginRender(ContentControlRenderer.java:48)
 at com.bea.netuix.nf.ControlLifecycle$7.visit(ControlLifecycle.java:481)
 at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:518)
 at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
 at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
 at com.bea.netuix.nf.ControlTreeWalker.walk(ControlTreeWalker.java:220)
 at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:399)
 at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:361)
 at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:352)
 at com.bea.netuix.nf.Lifecycle.run(Lifecycle.java:326)
 at com.bea.netuix.nf.UIControl.render(UIControl.java:582)
 at com.bea.netuix.servlets.controls.PresentationContext.render(PresentationContext.java:488)
 at com.bea.netuix.servlets.util.RenderToolkit.renderChild(RenderToolkit.java:152)
 at com.bea.netuix.servlets.jsp.taglib.skeleton.Child.doTag(Child.java:63)
 at jsp_servlet._framework._skeletons._bighorn.__flowlayout._jspService(__flowlayout.java:175)
 at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
 at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
 at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
 at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
 at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
 at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:502)
 at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:429)
 at com.bea.netuix.servlets.controls.application.laf.JspTools.renderJsp(JspTools.java:148)
 at com.bea.netuix.servlets.controls.application.laf.JspControlRenderer.beginRender(JspControlRenderer.java:72)
 at com.bea.netuix.servlets.controls.application.laf.PresentationControlRenderer.beginRender(PresentationControlRenderer.java:65)
 at com.bea.netuix.nf.ControlLifecycle$7.visit(ControlLifecycle.java:481)
 at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:518)
 at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
 at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
 at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
 at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
 at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
 at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
 at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
 at com.bea.netuix.nf.ControlTreeWalker.walkRecursiveRender(ControlTreeWalker.java:529)
 at com.bea.netuix.nf.ControlTreeWalker.walk(ControlTreeWalker.java:220)
 at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:399)
 at com.bea.netuix.nf.Lifecycle.processLifecycles(Lifecycle.java:361)
 at com.bea.netuix.nf.Lifecycle.runOutbound(Lifecycle.java:208)
 at com.bea.netuix.nf.Lifecycle.run(Lifecycle.java:162)
 at com.bea.netuix.servlets.manager.UIServlet.runLifecycle(UIServlet.java:465)
 at com.bea.netuix.servlets.manager.UIServlet.doPost(UIServlet.java:291)
 at com.bea.netuix.servlets.manager.UIServlet.doGet(UIServlet.java:231)
 at com.bea.netuix.servlets.manager.UIServlet.service(UIServlet.java:216)
 at com.bea.netuix.servlets.manager.SingleFileServlet.service(SingleFileServlet.java:275)
 at com.bea.netuix.servlets.manager.PortalServlet.service(PortalServlet.java:719)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
 at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
 at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
 at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
 at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
 at com.bea.p13n.servlets.PortalServletFilter.doFilter(PortalServletFilter.java:336)
 at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
 at com.bea.content.manager.servlets.ContentServletFilter.doFilter(ContentServletFilter.java:178)
 at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
 at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
 at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
 at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3592)
 at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
 at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
 at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2202)
 at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108)
 at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432)
 at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
 at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

Est-il possible d'utiliser Spring Portlet MVC dans Weblogic Portal ou suis-je en train de perdre mon temps ? Ce qui précède ressemble à une ClassNotFoundException mais j'ai toutes les jarres Spring dont j'ai besoin dans le dossier WEB-INF/lib de la portlet donc je ne suis pas sûr de ce que cela peut signifier.

Toute aide serait grandement appréciée.

1voto

Annie Points 1139

Il semble qu'il y ait eu un problème dans mon fichier portlet.xml où j'avais ce qui suit :

<portlet>
  <portlet-name>helloWorld</portlet-name>
  <portlet-class>
    org.springframework.web.portlet.DispatcherPortlet                   
  </portlet-class>
...
</portlet>

Il y avait des tabulations entre les balises et lorsque j'ai supprimé l'espace blanc, cela a donné ceci :

<portlet>
  <portlet-name>helloWorld</portlet-name>
  <portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class>
...
</portlet>

Cela a fonctionné ! Quel problème irritant, je pensais que le conteneur de portlet serait capable de lire le nom de la classe et de supprimer tout espace blanc, mais apparemment ce n'est pas le cas :(

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X