Spring MVC Portlet и Weblogic Portal - PullRequest
       37

Spring MVC Portlet и Weblogic Portal

0 голосов
/ 22 апреля 2010

Я пытаюсь создать портлет Spring MVC (версия 3.0.0) для развертывания в Weblogic Portal (10.3.2), но при переходе на страницу портала, на которой я разместил свой портлет, появляется следующая ошибка:

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)

Можно ли использовать Spring Portlet MVC в Weblogic Portal или я трачу здесь время? Вышеприведенное выглядит примерно как ClassNotFoundException, но у меня есть все необходимые мне пружинные файлы в папке WEB-INF / lib портлета, поэтому я не уверен, что это может означать.

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 22 апреля 2010

Похоже, что была проблема в моем файле portlet.xml, где у меня было следующее:

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

Между тегами было несколько вкладок, и когда я удалил пробел, они выглядели так:

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

Это сработало! Какая раздражающая проблема, я предположил, что контейнер портлета сможет прочитать имя класса и удалить любые пробелы, но, очевидно, нет: (

...